consulta de sql... resultado complicado
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:
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.
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
Curtidas 0
Respostas
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
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
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
26/11/2004
xtreme muito obrigado mesmo pela força... me safou de um grande problema. Valeu
GOSTEI 0