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

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

Eric Holo
Nouveau WRInaute
 
Messages: 5
Inscription: Sam Mai 21, 2005 11:44

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

Message le Mar Aoû 30, 2005 10:09

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 ??

/* jerome */
Nouveau WRInaute
 
Messages: 18
Inscription: Mar Aoû 23, 2005 12:56

Message le Mar Aoû 30, 2005 11:11

Quelque chose de ce genre devrait fonctionner :

Code: Tout sélectionner
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

jeroen
WRInaute accro
WRInaute accro
 
Messages: 2384
Inscription: Ven Aoû 30, 2002 13:35

Message le Mar Aoû 30, 2005 11:24

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 ?

Eric Holo
Nouveau WRInaute
 
Messages: 5
Inscription: Sam Mai 21, 2005 11:44

Message le Mer Aoû 31, 2005 9:50

Effectivement, 1 info pour plusieurs docs et vice-versa..
Bonne question..
Bon j'essaye le script..

Eric Holo
Nouveau WRInaute
 
Messages: 5
Inscription: Sam Mai 21, 2005 11:44

Message le Mer Aoû 31, 2005 10:16

Ca marche parfaitement bien..
Merci Jerome..
Voici mon site : http://www.kterre.org
Cette page me permettra de gérer tout type de documents annexes sur les infos de la chronologie..

Eric Holo
Nouveau WRInaute
 
Messages: 5
Inscription: Sam Mai 21, 2005 11:44

Message le Mer Aoû 31, 2005 12:34

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: Tout sélectionner
SELECT t_pays.*
FROM t_pays LEFT JOIN t_info_pays
ON t_pays.id_pays = t_info_pays.id_pays

/* jerome */
Nouveau WRInaute
 
Messages: 18
Inscription: Mar Aoû 23, 2005 12:56

Message le Jeu Sep 01, 2005 9:35

documente toi sur les clauses "GROUP BY" et "COUNT" de sql ;)

Eric Holo
Nouveau WRInaute
 
Messages: 5
Inscription: Sam Mai 21, 2005 11:44

Message le Jeu Sep 01, 2005 17:22

Voilà ce que j'ai compris (pas assez faut croire..) et essayé mais bon !!
J'insère dans le SELECT un:
Code: Tout sélectionner
COUNT( "quelque chose" ) AS nbr

et à la fin:
Code: Tout sélectionner
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 ??

/* jerome */
Nouveau WRInaute
 
Messages: 18
Inscription: Mar Aoû 23, 2005 12:56

Message le Ven Sep 02, 2005 8:46

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 ;)


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités