PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Utilizzo della clausola EXCEPT in PostgreSQL

La tua richiesta sembra perfettamente valida:

SELECT fk_id_tbl2 AS some_name
FROM   table1
EXCEPT  -- you may want to use EXCEPT ALL
SELECT pk_id
FROM   table2;

Colonna nomi sono irrilevanti per la query. Solo tipi di dati deve combaciare. Il nome della colonna di output della tua query è fk_id_tbl2 , solo perché è il nome della colonna nel primo SELECT . Puoi usare qualsiasi alias.

Ciò che viene spesso trascurato:le sottili differenze tra EXCEPT (che piega i duplicati) e EXCEPT ALL - che mantiene tutte le singole righe non corrispondenti. Maggiori spiegazioni e altri modi per fare lo stesso, alcuni dei quali molto più flessibili:

  • Seleziona le righe che non sono presenti in un'altra tabella

Dettagli per EXCEPT nel manuale.