Ir para conteúdo

POWERED BY:

Arquivado

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

amgarcia

Sql

Recommended Posts

Boa Tarde!

 

Estou com a seguinte dúvida, tenho uma tabela que chama TABELA1 e outra que chama TABELA2(possui uma FK que está relacionada com a TABELA1).

 

Como eu faço para retornar apenas os registros da TABELA1 que não contenham na TABELA2, sem usar IN.

 

No Oracle tem uma clausula que retorna o que tem em comum entre tabelas sem ser o WHERE, eu preciso do inverso disse, só que em MySQL.

 

Valeu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Guiando-se por um campo "ID", você poderia fazer usando NOT EXISTS ou com LEFT JOIN.

 

Exemplos:

 

SELECT t1.*
  FROM tabela1 t1
  WHERE NOT EXISTS (
    SELECT 1
      FROM tabela2 t2
      WHERE t2.id = t1.id
  )

SELECT t1.*
  FROM tabela1 t1
    LEFT JOIN tabela2 t2
    ON t2.id = t1.id
  WHERE t2.id IS NULL

Esta última era a forma que faziam antes da versão 4.1, que não suportava subquery.

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.