[SQL] Requête pour obtenir les valeurs présentes dans 1 seule table

Requête pour obtenir les valeurs présentes dans 1 seule table [SQL] - SQL/NoSQL - Programmation

Marsh Posté le 19-01-2006 à 14:28:55    

Bonjour,
 
Je suis dans une base access dans laquelle j'ai 2 tables
 
Table1 -> 100 lignes
id
nom
 
Table2 -> 250 lignes
id
nom
 
Je veux faire une requête qui me sort tous les id qui sont dans Table 2 mais pas dans table 1.
 
Sachant que le lien se fait sur l'id

Reply

Marsh Posté le 19-01-2006 à 14:28:55   

Reply

Marsh Posté le 19-01-2006 à 15:25:57    

Il faut utiliser NOT IN, par exemple :

Code :
  1. SELECT Table2.id, Table2.nom
  2. FROM Table2
  3. WHERE Table2.id NOT IN (SELECT Table1.id FROM Table1);


 
Pour infos, si la jointure avait été sur le nom, alors la requête suivante aurait pu être utilisée :

Code :
  1. SELECT Table2.id, Table2.nom
  2. FROM Table1, Table2
  3. WHERE Table1.nom = Table2.nom
  4.    AND Table2.id NOT IN
  5.    (SELECT TT.id FROM Table1 TT);


Message édité par olivthill le 19-01-2006 à 15:32:06
Reply

Marsh Posté le 19-01-2006 à 15:48:08    

Merci je vais tester ça.

Reply

Marsh Posté le 20-01-2006 à 18:52:22    

Boudiou ! Arrêtez de parler de "NOT IN" :o
 
Y'a un topic qui date de pas plus tard que la semaine dernière où on a fait le tour de la question, et où j'ai passé une demi-journée à bencher NOT IN, LEFT JOIN, NOT EXISTS et INTERSECTION.
Si le dernier n'est pas supporté par Access, les 3 autres le sont, et NOT IN est le pire des trois :o

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed