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.