Jump to content
Fórum Script Brasil
  • 0

(Resolvido) Consulta SQL


Guest --Luiz Carlos --

Question

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 to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 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 to comment
Share on other sites

Guest
This topic is now closed to further replies.


  • Forum Statistics

    • Total Topics
      152k
    • Total Posts
      651.5k
×
×
  • Create New...