SQL - RETORNAR NÃO REPETIDOS

FBUR 21/07/2016 13:53:42
#465003
Boa tarde.

Tenho duas tabelas. Com faço para saber quais os registros não repetidos?
Porém, o que eu preciso é que não se repita uma certa combinação de campos e não um campo específico.

Ex:

---Tabela A
id_arquivo
nome
idade
codigo

altura
sexo

---Tabela B
id_depto
nome
idade
codigo

dependentes

A tabela A tem informações que já existem na tabela B. Mas a tabela B não pode ter registros que já existam na tabela A

Preciso saber se os três campos: nome, idade, codigo, existem na tabela B. Mas tem que ser a combinação dos três.
ex:
Se na Tabela A tem (nome, idade, codigo):
Fulano, 20, 1150

Preciso saber se existe exatamente esta sequência na Tabela B.

Pois na tabela B, pode existir o nome Fulano, com 20 anos, contato que não tenha o código 1150
Ou, pode existir um Fulano com código 1150, contanto que não tenha 20 anos. E assim por diante.

Não consegui fazer com o NOT IN, nem com o LEFT JOIN .... campo IS NULL.

Com o UNION consegui juntar as tabelas e o que é repetido ficou de fora. Mas o UNION me trouxe, claro, o que eu já tinha na tabela A e os novos registro da tabela B. Só que eu queria somente os registros da tabela B que não existem na tabela A.

O problema é que todos os campos existem em ambas as tabelas, mas eu procuro uma ocorrência de um conjunto de três campos.

Meio confuso...
JABA 22/07/2016 00:28:35
#465020
Com a consulta abaixo, você trará todos os registros da tabela B que não tem relação com a tabela A quando os campos Codigo, Nome e Idade possuírem os mesmos valores em ambas as tabelas.

SELECT B.* From A Right Join B On A.Codigo= B.Codigo And A.Nome = B.Nome And A.Idade = B.Idade where A.Codigo is null and A.Nome is null And A.Idade is null
JABA 25/07/2016 18:49:32
#465127
Funcionou como era esperado?
Tópico encerrado , respostas não são mais permitidas