2010-11-06 3 views
5

Je veux montrer la dernière activité de l'utilisateur. (vous pouvez lire mon last question pour plus d'informations à ce sujet)LIMIT 1 inside JOIN de tables spécifiques dans MySQL?

Je dois faire un grand JOIN (6+ tables).

Je n'ai besoin que d'une ligne par ID, mais certaines tables contiennent plus d'une ligne par ID. Par exemple, un identifiant d'article ne peut avoir qu'une seule ligne dans la table des votes mais il peut en contenir beaucoup dans la table des images car il peut y avoir plus d'une image par article, mais je ne veux qu'une seule image.

donc je dois faire quelque chose comme ça (bien sûr, ce code est erroné):

SELECT table1.item, table2.item, table3.item, table4.item, table5.item 
FROM table1 
LEFT OUTER JOIN ... ON ... AND ... 
LEFT OUTER JOIN ... ON ... AND ... 
LEFT OUTER JOIN ... ON ... AND ... LIMIT 1 
LEFT OUTER JOIN ... ON ... AND ... LIMIT 1 
WHERE table1.item = ?; 

Comment puis-je accomplir cela?

+0

MySQL n'a pas l'analyse/la fonctionnalité de fenêtrage/rang pour soutenir de telles requêtes - voir le plus grand-n-par-balise de groupe pour des exemples et des approches. –

Répondre