Requête SQL pour connexion entre 3 tables liées..

Nouveau WRInaute
Salut,
Voici le topo :
J'ai une table "t_doc", une table "t_info", et une "t_info_doc" qui lie les id des deux premières..
Mon but est d'avoir la liste des documents qui ne sont pas déjà liés à une ou plusieurs infos..

Ma démarche serait de faire la liste des id_doc, celle des id_info_doc, soustraire les deux pour obtenir les id_doc non connectés à des id_doc..

Pouvez-vous m'aider ??
 
Nouveau WRInaute
Quelque chose de ce genre devrait fonctionner :

Code:
SELECT t_doc. *
FROM t_doc
LEFT  JOIN t_info_doc ON t_doc.id = t_info_doc.doc_id
WHERE t_info_doc.id IS NULL
 
WRInaute passionné
petite question : est-ce que une info peut être liée à plusieurs docs ? sinon ta table t_info_doc ne sert à rien
il suffirait de rajouter un champ doc_id sur la table t_info pour lier les infos aux docs. C'est plus simple, non ?
 
Nouveau WRInaute
Je souhaite maintenant créer une page de statistiques des pays les plus liés à des infos, il me semble que le principe doit être approximativement le même, excepté le fait que la requête induit un ordre de classement relatif à une autre requète, c'est là où je cale..
Toujours les tables t_info, t_pays, t_info_pays, et voici la requête de départ:
Code:
SELECT t_pays.* 
FROM t_pays LEFT JOIN t_info_pays 
ON t_pays.id_pays = t_info_pays.id_pays
 
Nouveau WRInaute
Voilà ce que j'ai compris (pas assez faut croire..) et essayé mais bon !!
J'insère dans le SELECT un:
Code:
COUNT( "quelque chose" ) AS nbr
et à la fin:
Code:
ORDER BY nbr
C'est le "quelque chose" qui me fait tourner en rond, je ne vois pas comment y insérer la jointure entre 2 tables !!
Le nbr représente donc ce nombre de fois où chaque pays est lié à une info via t_info_pays..
Peux-tu m'orienter encore ??
 
Nouveau WRInaute
Tu fais ta jointure normalement (avec un =) ce qui va te donner la liste de tous les couples pays<->infos :
pays1<->info1
pays2<->info2
pays1<->info3
pays3<->info4
...
Ensuite tu utilises la group by pour regrouper tous les couples de chaque pays entre eux, et avec le count tu auras le nombre de couple pour chaque pays donc le nombre d'infos :
pays1<->2
pays2<->1
pays3<->1
C'est de la logique tout simplement, le mieux c'est que tu cherches par toi meme comment mettre ca en oeuvre concretement (la requete), c'est comme ca qu'on apprend ;)
 
Discussions similaires
Haut