sql >> Base de Datos >  >> RDS >> PostgreSQL

Uso de la cláusula EXCEPT en PostgreSQL

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.