Requête SQL pour connexion entre 3 tables liées..
9 messages • Page 1 sur 1
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
Requête SQL pour connexion entre 3 tables liées..
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 ??
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
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
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 ?
il suffirait de rajouter un champ doc_id sur la table t_info pour lier les infos aux docs. C'est plus simple, non ?
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..
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..
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:
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
documente toi sur les clauses "GROUP BY" et "COUNT" de sql 
Voilà ce que j'ai compris (pas assez faut croire..) et essayé mais bon !!
J'insère dans le SELECT un:
et à la fin:
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 ??
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
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
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
9 messages • Page 1 sur 1
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 :
- AdSense Tracking : statistiques détaillées sur les clics AdSense
- Honda va inclure Google Earth dans son système de navigation par satellite
- Barre d'outils Google pour Firefox : version 3
- Une icone pour afficher des plans dans les résultats de Google (Plus Box)
- Statistiques des requêtes sur les moteurs en 2006
- gestion tables sql
- Requete SQL sur 2 tables
- SQL Requête dans plusieurs tables
- Passer deux tables SQL en une
- Tables SQL disparues chez OVH
- Grouper les tables SQL comme Freeglobes
- Passage de tables sql en flux xml locatif ?
- Problème avec requête SQL multiple (3 tables) et comptage
- [SQL]Verifier la presence d'une entrée dans plusieurs tables
- Requete de classement SQL sur trois tables avec SUM, COUNT..
- Outil SQL pour export de tables sur des bases différentes
Consultez la description détaillée des produits ou services de Google suivants : Google AdWords API
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités


le forum