Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Consulta SQL


Guest --Luiz Carlos --

Pergunta

Guest --Luiz Carlos --

Caros colegas,

Estou com o seguinte problema, preciso extrair dados de duas tabelas, produtos e departamentos, ambas possuem o código do departamento, o nome do campo é dp_codigo. Então estou usando o seguinte comando:

SELECT * FROM produtos p, departamentos d

WHERE p.dp_codigo = d.dp_codigo or p.dp_codigo is null

O que acontece é que se a tabela departamentos estiver vazia não aparece o produto.

Como resolver isso ?

Muito Obrigado.

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
Caros colegas,

Estou com o seguinte problema, preciso extrair dados de duas tabelas, produtos e departamentos, ambas possuem o código do departamento, o nome do campo é dp_codigo. Então estou usando o seguinte comando:

SELECT * FROM produtos p, departamentos d

WHERE p.dp_codigo = d.dp_codigo or p.dp_codigo is null

O que acontece é que se a tabela departamentos estiver vazia não aparece o produto.

Como resolver isso ?

Muito Obrigado.

Oi, Luiz Carlos!

Quando tiver relacionamento entre duas ou mais tabelas dê preferencia ao uso da cláusula JOIN. é mais eficiente que controlar pela cláusula WHERE.

Para o seu caso o uso correto é com LEFT JOIN onde aparecerá todos os registros da tabela da esquerda e, onde não houher registros na tabela da direita os campos referentes a ela ficarão com NULL. Vamos ao código:

SELECT * FROM produtos p, LEFT JOIN departamentos d ON p.dp_codigo = d.dp_codigo

att

Denis Courcy

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,7k
×
×
  • Criar Novo...