double left join

WRInaute passionné
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
 
Nouveau WRInaute
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
 
WRInaute occasionnel
Je comprend pas tout... ca sert a quoi de faire un count(id) et un group by id alors que id est unique...

nb1 et nb2 sont pas egal tout le temps a 1 ??

(dur de reflechir de bon matin...)
 
Discussions similaires
Haut