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.