PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Usando a cláusula EXCEPT no PostgreSQL


Sua consulta parece perfeitamente válida:
SELECT fk_id_tbl2 AS some_name
FROM   table1
EXCEPT  -- you may want to use EXCEPT ALL
SELECT pk_id
FROM   table2;

Coluna nomes são irrelevantes para a consulta. Apenas tipos de dados deve combinar. O nome da coluna de saída da sua consulta é fk_id_tbl2 , só porque é o nome da coluna no primeiro SELECT . Você pode usar qualquer alias.

O que muitas vezes é esquecido:as diferenças sutis entre EXCEPT (que dobra duplicatas) e EXCEPT ALL - que mantém todas as linhas individuais não correspondidas. Mais explicações e outras maneiras de fazer o mesmo, algumas delas muito mais flexíveis:
  • Selecione as linhas que não estão presentes em outra tabela

Detalhes para EXCEPT no manual.