SQLite: requête sélection éléments présents d'une table, absent d'une autre
Résolu
Bonjour,
J'ai 2 tables, FULL_NAME et LOCAL_NAME et je souhaite sélectionner les éléments présents au niveau d'une colonne NAME de l'une, qui sont absents dans une colonne NAME de l'autre. Aussi, j'ai essayé cette requête, mais aucun élément n'est trouvé
SELECT DISTINCT b.NAME
FROM FULL_NAME c, LOCAL_NAME b
WHERE NOT EXISTS(SELECT c.NAME = b.NAME)
Or voici par exemple mes données:
FULL_NAME, NAME = {Anne, Jean, Pierre, Claire, Suzanne}
LOCAL_NAME{Anne, Claire, Julie}
J'aurais voulu récupérer "Julie" en résultat car "Julie" est absent du champ NAME de la table FULL_NAME.
Est-ce que vous pouvez m'aider à construire ma requête et m'expliquer pourquoi ça ne marche pas?
Merci d'avance
J'ai 2 tables, FULL_NAME et LOCAL_NAME et je souhaite sélectionner les éléments présents au niveau d'une colonne NAME de l'une, qui sont absents dans une colonne NAME de l'autre. Aussi, j'ai essayé cette requête, mais aucun élément n'est trouvé
SELECT DISTINCT b.NAME
FROM FULL_NAME c, LOCAL_NAME b
WHERE NOT EXISTS(SELECT c.NAME = b.NAME)
Or voici par exemple mes données:
FULL_NAME, NAME = {Anne, Jean, Pierre, Claire, Suzanne}
LOCAL_NAME{Anne, Claire, Julie}
J'aurais voulu récupérer "Julie" en résultat car "Julie" est absent du champ NAME de la table FULL_NAME.
Est-ce que vous pouvez m'aider à construire ma requête et m'expliquer pourquoi ça ne marche pas?
Merci d'avance
2 réponses
-
Contributeurbonjour,
je me demande si la syntaxe n'est pas plutôt:SELECT DISTINCT b.NAME FROM LOCAL_NAME b WHERE NOT EXISTS(SELECT c.NAME from FULL_NAME c where c.NAME = b.NAME)
moi je ferais plutôt:SELECT l.NAME FROM LOCAL_NAME l left join FULL_NAME f on l.NAME = f.NAME WHERE f.name is null
-
Génial, ça marche, merci beaucoup :))))