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

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut