2010-11-06 15 views
5

Quiero mostrar al usuario la última actividad. (Puede leer mi last question para obtener más información al respecto)¿LIMIT 1 dentro de JOIN de tablas específicas en MySQL?

Tengo que hacer una gran JOIN (6+ tablas).

Necesito obtener solo una fila por ID, pero hay algunas tablas que contienen más de una fila por ID. Por ejemplo, una ID de artículo puede tener solo una fila en la tabla de "votos", pero puede tener mucho en la tabla de "imágenes" porque puede haber más de una imagen por artículo, pero solo quiero una imagen.

así que tengo que hacer algo como esto (por supuesto el código es incorrecto):

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 = ?; 

¿Cómo puedo lograr eso?

+0

MySQL no tiene la funcionalidad analítica/ventanas/Clasificación para apoyar este tipo de consultas - vea la etiqueta mayor-n-por-grupo de ejemplos y enfoques. –

Respuesta