Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Leudassdf

[Resolvido] Problema com Query

Mensagens Recomendadas

Leudassdf

Boas Pessoal,

Atualmente tenho a seguinte query sql:

SELECT produto.*, CASE (ranking.gosta_s_n) WHEN 1 THEN 0 ELSE 1 END AS gosto, CASE (ranking.gosta_s_n)
                        WHEN 1 THEN 'True' ELSE 'False' END AS visible, CASE (ranking.gosta_s_n) WHEN 1 THEN 'Gostas deste produto.' END AS mensagem,
                        CASE favoritos.favorito WHEN 1 THEN 1 ELSE 0 END AS imagem
FROM         produto LEFT OUTER JOIN
                        ranking ON produto.cod_produto = ranking.cod_produto ANDproduto.cod_categoria = 2AND ranking.username = 'LEUDASSDF' LEFT OUTER JOIN
                        favoritos ON produto.cod_produto = favoritos.cod_produto AND favoritos.username = 'LEUDASSDF'

O problema reside quando eu quero filtrar os produtos pela sua categoria. neste caso so queria os produtos cuja categoria fosse a 2. No entanto eu fazendo isso retorna-me qualquer categoria. alguem sabe como posso apenas devolver os produtos com a categoria 2?

Cumprimentos

Editado por pmg
Falta LP no GeSHi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
jsWizard
SELECT ...
FROM produto
LEFT OUTER JOIN ranking ON produto.cod_produto = ranking.cod_produto AND ranking.username = 'LEUDASSDF'
LEFT OUTER JOIN favoritos ON produto.cod_produto = favoritos.cod_produto AND favoritos.username = 'LEUDASSDF'
WHERE produto.cod_categoria = 2

Editado por jsWizard

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pmg

SELECT produto.*,
      CASE (ranking.gosta_s_n) WHEN 1 THEN 0 ELSE 1 END AS gosto,
      CASE (ranking.gosta_s_n) WHEN 1 THEN 'True' ELSE 'False' END AS visible,
      CASE (ranking.gosta_s_n) WHEN 1 THEN 'Gostas deste produto.' END AS mensagem,
      CASE favoritos.favorito WHEN 1 THEN 1 ELSE 0 END AS imagem
FROM produto LEFT OUTER JOIN
    ranking ON produto.cod_produto = ranking.cod_produto
            AND produto.cod_categoria = 2
            AND ranking.username = 'LEUDASSDF' LEFT OUTER JOIN
    favoritos ON produto.cod_produto = favoritos.cod_produto
            AND favoritos.username = 'LEUDASSDF'

O teu codigo nao cabia todo no ecra, por isso alterei o tamanho das linhas e indentacao para estar a ver tudo ao mesmo tempo sem scrollar.

Precisar de scrollar para perceber codigo é horroroso :)

Mete as condicoes que nao fazem parte das ligacoes entre tabelas fora do ... JOIN ..., dentro dum WHERE ...

SELECT produto.*,
      CASE (ranking.gosta_s_n) WHEN 1 THEN 0 ELSE 1 END AS gosto,
      CASE (ranking.gosta_s_n) WHEN 1 THEN 'True' ELSE 'False' END AS visible,
      CASE (ranking.gosta_s_n) WHEN 1 THEN 'Gostas deste produto.' END AS mensagem,
      CASE favoritos.favorito WHEN 1 THEN 1 ELSE 0 END AS imagem
FROM produto LEFT OUTER JOIN
    ranking ON produto.cod_produto = ranking.cod_produto LEFT OUTER JOIN
    favoritos ON produto.cod_produto = favoritos.cod_produto
WHERE produto.cod_categoria = 2
 AND ranking.username = 'LEUDASSDF'
 AND favoritos.username = 'LEUDASSDF'


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Leudassdf

Muito obrigada. era isso mesmo que precisava. não sabia que poderia fazer um where...

Estamos sempre a aprender coisas novas...

Cumprimentos

Editado por pmg
quote desnecessario

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.