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.