Inner Join ao contrário... como fazer??
03/08/2006
0
Tenho duas tabelas e preciso de fazer uma relação entre elas onde os códigos que estiverem em ambas não podem aparecer... somente os que estiverem em uma e não estiver em outra.
Qual a instrução em SQL para mysql 4.0 que eu tenho que fazer??
Desde já muito obrigado!!
Abraços a Todos
[color=green:32e1c496f3]Movido de Delphi para MySQL[/color:32e1c496f3]
Btovix
Posts
03/08/2006
Dmalta
Usando a sintaxe ANSI SQL:
[b]SELECT[/b] A.*, B.* [b]FROM[/b] A [b]FULL OUTER JOIN[/b] B [b]ON[/b] A.ID = B.ID [b]WHERE[/b] A.ID IS NULL [b]OR[/b] B.ID IS NULL
03/08/2006
Dmalta
SELECT A.*, B.* FROM A FULL OUTER JOIN B ON A.ID = B.ID WHERE A.ID IS NULL OR B.ID IS NULL
03/08/2006
Btovix
se vc souber como resolver pra versão 4.0 ou mesmo um link pra eu dar uma olhada já vai ajudar bastante...
um abraço e muito obrigado pela ajuda!!
04/08/2006
Dmalta
SELECT ´A´ AS Tabela, A.ID FROM A LEFT JOIN B ON A.ID = B.ID WHERE B.ID IS NULL UNION ALL SELECT ´B´ AS Tabela, B.ID FROM A RIGHT JOIN B ON A.ID = B.ID WHERE A.ID IS NULL
O primeiro select pega as linhas de A que não existem em B e o segundo pegas as linhas de B que não existem em A.
Também pode-se usar os predicados (NOT) EXISTS e (NOT) IN, mas eu acho mais confuso.
Um abraço!
Clique aqui para fazer login e interagir na Comunidade :)