O QUE FAZER NESSE CASO - SQL

WEBIER 25/08/2011 22:47:41
#382511
Tenho a seguinte sql:

SQL = [Ô]SELECT PRODUTOS_COMPRAR.*, CLIENTE.* FROM PRODUTOS_COMPRAR INNER JOIN CLIENTE ON PRODUTOS_COMPRAR.COD_CLIENTE = CLIENTE.CODIGO[Ô]


Ele relaciona as 2 tabelas pelos campos: PRODUTOS_COMPRAR.COD_CLIENTE = CLIENTE.CODIGO

mas tenho casos de registros inseridos no banco de dados sem o COD_CLIENTE... e esse registros nao aparecem no grid

então o que devo mudar para quando o COD_CLIENTE for fazio, mesmo assim ele joga pro grid ?


AJSO 25/08/2011 23:07:48
#382513
Resposta escolhida
inner join ou left join ou ainda right join ou por ultimo e menos perfoematico FULL join

tem uma concqatenação de tabelas pelo UNION ALL mas pode deixar sua consulta um tanto lenta.

São consultas que vão pela tabela da esquerda, direita ou todas.

SELECT PRODUTOS_COMPRAR.*, CLIENTE.* FROM PRODUTOS_COMPRAR LEFT JOIN CLIENTE ON PRODUTOS_COMPRAR.COD_CLIENTE = CLIENTE.CODIGO

SELECT PRODUTOS_COMPRAR.*, CLIENTE.* FROM PRODUTOS_COMPRAR RIGHT JOIN CLIENTE ON PRODUTOS_COMPRAR.COD_CLIENTE = CLIENTE.CODIGO

SELECT PRODUTOS_COMPRAR.*, CLIENTE.* FROM PRODUTOS_COMPRAR FULL JOIN CLIENTE ON PRODUTOS_COMPRAR.COD_CLIENTE = CLIENTE.CODIGO

talves a que melhor atende sua especxtativa seria FULL JOIN N para N.


boa sorte
Tópico encerrado , respostas não são mais permitidas