Bonjour,
je suis sous access 2000, mais je pense que la question est d'ordre générale SQL.
J'ai pour simplifier 2 tables que je joins grâce à un INNER JOIN.
Je fais:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Table1 | Table2 | Résultat | Voulu ------------------------------------------------------------------------------ clé1 lien | clé2 | clé1 count(clé1) | clé1 count(clé1) 1 4 | 1 | 1 1 | 1 1 1 5 | 3 | 2 2 | 2 2 1 6 | 6 | | 4 0 2 1 | 7 | 2 3 | 4 7 |
Donc cet exemple, pour cle1 = 4, il n'y a pas d'élément qui vérifie la condition WHERE, donc pas de lien, il n'a pas de résultat dans la requête.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT cle1, count(cle1) FROM table1 INNER JOIN table2 ON table1.lien = table2.cle2 WHERE table1.cle2 IN (1, 3, 6) GROUP BY cle1
Je souhaiterai avoir un résultat (0 serait bien)
En fais je veux pour chaque élément de:Il y ait une correspondance. J'arrive à contourner mon problème par des requêtes immenses, mais je pense, qu'il y a un moyen auquel je ne pense pas actuellement, qui pourrais résoudre mon problème beaucoup plus simplement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT cle1 FROM table1 group by cle1
Peux être qu'un LEFT OUTER JOIN avec le SELECT cle1 FROM table1 pourrait m'aider, mais est-ce la seule solution.
Je cherche à faire quelque chose de pas trop lourd.
Merci, d'avance.
Partager