double left join
7 messages
• Page 1 sur 1
- jeroen
- WRInaute passionné

- Messages: 2461
- Inscription: 30 Aoû 2002
double left join
Salut,
j'ai un problème assez complexe :
J'ai une table 't' avec des id uniques et 2 tables 't1' et 't2' liées à 't' mais qui peuvent être vides.
Je voudrais récupérer les 10 derniers enregistrement de 't' avec le nombre d'enregistrements de 't1' et 't2' qui sont liés.
Quand je fais :
CODE
SELECT t.id, count(t1.id) as nb1 FROM t LEFT JOIN t1 ON t1.id_table=t.id GROUP BY t.id ORDER BY t.id DESC LIMIT 0,10
J'arrive sans pb à récupérer les 10 derniers enregistrements de 't' et le nombre d'enregistrements de 't1' liés.
Par contre si je fais
CODE
SELECT t.id, count(t1.id) as nb1, count(t2.id) as nb2 FROM t LEFT JOIN t1 ON t1.id_table=t.id LEFT JOIN t2 ON t2.id_table=t.id GROUP BY t.id ORDER BY t.id DESC LIMIT 0,10
je récupère ds nb1 et nb2 le produit du nombre d'enregistrements liés.
Vous avez une idée ??
Merci
j'ai un problème assez complexe :
J'ai une table 't' avec des id uniques et 2 tables 't1' et 't2' liées à 't' mais qui peuvent être vides.
Je voudrais récupérer les 10 derniers enregistrement de 't' avec le nombre d'enregistrements de 't1' et 't2' qui sont liés.
Quand je fais :
CODE
SELECT t.id, count(t1.id) as nb1 FROM t LEFT JOIN t1 ON t1.id_table=t.id GROUP BY t.id ORDER BY t.id DESC LIMIT 0,10
J'arrive sans pb à récupérer les 10 derniers enregistrements de 't' et le nombre d'enregistrements de 't1' liés.
Par contre si je fais
CODE
SELECT t.id, count(t1.id) as nb1, count(t2.id) as nb2 FROM t LEFT JOIN t1 ON t1.id_table=t.id LEFT JOIN t2 ON t2.id_table=t.id GROUP BY t.id ORDER BY t.id DESC LIMIT 0,10
je récupère ds nb1 et nb2 le produit du nombre d'enregistrements liés.
Vous avez une idée ??
Merci
-

cyberdesign - Nouveau WRInaute

- Messages: 22
- Inscription: 4 Déc 2004
Essaye avec:
SELECT t.id, count(t1.id) as nb1, count(t2.id) as nb2 FROM t1 RIGHT JOIN t ON t1.id_table=t.id LEFT JOIN t2 ON t2.id_table=t.id GROUP BY t.id ORDER BY t.id DESC LIMIT 0,10
SELECT t.id, count(t1.id) as nb1, count(t2.id) as nb2 FROM t1 RIGHT JOIN t ON t1.id_table=t.id LEFT JOIN t2 ON t2.id_table=t.id GROUP BY t.id ORDER BY t.id DESC LIMIT 0,10
-

cyberdesign - Nouveau WRInaute

- Messages: 22
- Inscription: 4 Déc 2004
Il peut avoir entre 0 et n enregistrements dans t1 pour lesquels il a id_table = id de t.
De même pour t2.
De même pour t2.
7 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- [réglé]Reponse double dans une requête avec LEFT JOIN
- [Résolu] Optimisation de LEFT JOIN
- Question mysql : LEFT JOIN+COUNT
- MySQL problème de requete LEFT JOIN
- [Résolu] Update / Select LEFT JOIN / et mysql
- Optimisation SQL - Inner Join (3) ou 3 x Select ?
- Jointure sql problème inner join
- Inner Join sur quatre tables ?
- No space left on device
- Inner join pour trouver l'identifiant ne fonctionne pas
- Google rachète iRows (tableur en ligne) - 20-11-2006
- Suggestions de requêtes dans Google News - 29-04-2006
- Google indexe plus de 8 milliards de pages - 11-11-2004
- Statistiques sur la blogosphère (Août 2006) - 08-08-2006
- Revenus en hausse de 70% pour Google (T3 2006) - 20-10-2006
- Nombre de clics dans les pages de résultats : statistiques AOL Août 2006 - 11-08-2006
- Agent Web Ranking v.2.6.2 s'ouvre à l'Asie - 09-05-2005
- Google Images indexe 2 187 212 422 images - 10-08-2005
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


