consulta de sql... resultado complicado

Delphi

26/11/2004

Olá,

Tenho um programa que tem uma tabela chamada CLIENTES e outra tabela chamada PEDIDO. Na hora de emitir um pedido o preenchimento do cliente é opcional (coisa de meu cliente).

Meu cliente quer que eu disponibilize no relatório de pedidos o endereço do cliente então estou fazendo uma consulta da seguinte maneira:

SELECT bdPedido.Valor, bdCliente.nome, bdCliente.Endereco From bdPedido, bdCliente WHERE bdPedido.Cod = 10 and [color=red]bdPedido.Cliente = bdCliente.Cod[/color] 


os pedidos que tem um cliente a consulta retorna bonitinha, mas os pedidos sem cliente não são retornados pela consulta.

O que fazer para corrigir este problema?


desde já muito obrigado.


Balceiro

Balceiro

Curtidas 0

Respostas

Xtreme

Xtreme

26/11/2004

Tenta assim
SELECT bdPedido.Valor, bdCliente.nome, bdCliente.Endereco From bdPedido
left join bdCliente on bdPedido.Cliente = bdCliente.Cod
WHERE bdPedido.Cod = 10 



GOSTEI 0
Balceiro

Balceiro

26/11/2004

a dúvida agora é a seguinte e se eu tivesse mais de uma tabela que gostaria de relacionar, como ficaria?


GOSTEI 0
Xtreme

Xtreme

26/11/2004

a dúvida agora é a seguinte e se eu tivesse mais de uma tabela que gostaria de relacionar, como ficaria?


Bom ai vc tem que ver se os campos tambem podem passar nulos, caso possam basta vc fazer da seguinte maneira

SELECT bdPedido.Valor, bdCliente.nome, bdCliente.Endereco From bdPedido
left join bdCliente on bdPedido.Cliente = bdCliente.Cod
left join <tabela> on <campo> = <campo>
.
.
.
WHERE bdPedido.Cod = 10


ja se for obrigatorio a presença do campo relacionado ao inves de ´left join´ use ´inner join´ so lembrando é a tabela desejada e os campos relaciodados tipo [u:b6a0dbda3d]bdPedido.Cliente = bdCliente.Cod[/u:b6a0dbda3d]


GOSTEI 0
Balceiro

Balceiro

26/11/2004

xtreme muito obrigado mesmo pela força... me safou de um grande problema. Valeu


GOSTEI 0
POSTAR