PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Verwendung der EXCEPT-Klausel in PostgreSQL

Ihre Abfrage scheint vollkommen gültig zu sein:

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

Spalten Namen sind für die Abfrage irrelevant. Nur Datentypen muss passen. Der Ausgabespaltenname Ihrer Abfrage ist fk_id_tbl2 , nur weil es der Spaltenname im ersten SELECT ist . Sie können einen beliebigen Alias ​​verwenden.

Was oft übersehen wird:die feinen Unterschiede zwischen EXCEPT (was Duplikate faltet) und EXCEPT ALL - wodurch alle einzelnen nicht übereinstimmenden Zeilen beibehalten werden. Weitere Erklärungen und andere Möglichkeiten, dasselbe zu tun, einige davon viel flexibler:

  • Wählen Sie Zeilen aus, die in keiner anderen Tabelle vorhanden sind

Details für EXCEPT im Handbuch.