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.