Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rafa.net

Join no SQL

Recommended Posts

Estou com um problema com um join no sql...o q acontece é o seguinte: tenho 2 tabelas (A e B ) e eu quero trazer todos os registros de B excluíndo os de A. P/ ficar + claro, eu já fiz isso no Oracle, e fica dessa maneira no SQL: SELECT B.ID, A.IDFROM A, BWHERE B.ID *= A.ID AND A.ID IS NULL Dessa maneira, c/ o Left Join em B, os id's q não correspondem em A ficam nulos e eu consigo resolver o problema. Mas no SQL, ao fazer isso, o Select me tras todos os id's de B e os de A todos nulos. Existe algum flag do tipo "SET ....{ ON | OFF }" p/ esse tipo de "problema"? Quem poder me ajudar, eu fico muito agradecido.Rafael

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro amigo,Veja se este script é o que você precisa. Execute-o em um banco de teste.create table table_A(codigo tinyint, nome varchar(10))gocreate table table_B(codigo tinyint, nome varchar(10))goinsert into table_A values (1,'andrea')insert into table_A values (2,'ana')insert into table_A values (3,'amanda')insert into table_A values (4,'alice')insert into table_A values (5,'alda')goinsert into table_B values (1,'carla')insert into table_B values (2,'celina')insert into table_B values (6,'célia')insert into table_B values (7,'cleuza')insert into table_B values (8,'clotilde')goselect *from table_B B where not exists(select codigo from table_A A where B.codigo = A.codigo)Att.Jurandir Bueno

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rafael boa tarde,

 

O exists / not exists tem melhor performance em relação ao in / not in. Isto se deve ao fato de que quando usamos o "exists", o SQL Server irá processar a query até encontrar a primeira incidência de registro, enquanto que o "in" varrerá a tabela ou índice em busca de todos os registros resultantes da pesquisa.

 

Att.

 

Jurandir Bueno

 

 

Valeu Jurandir...aproveitando, na questão de performance, há diferença entre usar "NOT IN" ou "NOT EXISTS" ?

<{POST_SNAPBACK}>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.