Su consulta parece perfectamente válida:
SELECT fk_id_tbl2 AS some_name
FROM table1
EXCEPT -- you may want to use EXCEPT ALL
SELECT pk_id
FROM table2;
Columna nombres son irrelevantes para la consulta. Solo tipos de datos debe coincidir con. El nombre de la columna de salida de su consulta es fk_id_tbl2
, solo porque es el nombre de la columna en el primer SELECT
. Puede utilizar cualquier alias.
Lo que a menudo se pasa por alto:las sutiles diferencias entre EXCEPT
(que dobla los duplicados) y EXCEPT ALL
- que mantiene todas las filas individuales no coincidentes. Más explicaciones y otras formas de hacer lo mismo, algunas de ellas mucho más flexibles:
- Seleccionar filas que no están presentes en otra tabla
Detalles para EXCEPT
en el manual.