Votre requête semble parfaitement valide :
SELECT fk_id_tbl2 AS some_name
FROM table1
EXCEPT -- you may want to use EXCEPT ALL
SELECT pk_id
FROM table2;
noms des colonnes sont sans rapport avec la requête. Uniquement les types de données doit correspondre. Le nom de la colonne de sortie de votre requête est fk_id_tbl2 , simplement parce que c'est le nom de la colonne dans le premier SELECT . Vous pouvez utiliser n'importe quel alias.
Ce qui est souvent négligé :les différences subtiles entre EXCEPT (qui plie les doublons) et EXCEPT ALL - qui conserve toutes les lignes individuelles sans correspondance.Plus d'explications et d'autres façons de faire de même, certaines d'entre elles beaucoup plus flexibles :
- Sélectionnez les lignes qui ne sont pas présentes dans un autre tableau
Détails pour EXCEPT dans le manuel.