Cómo limitar los resultados de una JUNTA IZQUIERDA
Tomemos el caso de dos tablas:tbl_product
ytbl_transaction
.tbl_product
enumera los detalles del producto, incluidos los nombres y los identificadores mientrastbl_transaction
enumera las transacciones relacionadas con los productos e incluye fechas, identificadores de productos, clientes, etc.
Necesito mostrar una página web que muestre 10 productos y para cada producto, las últimas 5 transacciones. Hasta el momento noLEFT JOIN
la consulta parece funcionar y la subconsulta siguiente habría funcionado si mysql pudiera permitirtx.product_id=ta.product_id
parte (falla conColumna desconocida 'ta.product_id' en 'cláusula where': [ERROR: 1054])
SELECT
ta.product_id,
ta.product_name,
tb.transaction_date
FROM tbl_product ta
LEFT JOIN (SELECT tx.transaction_date FROM tbl_transaction tx WHERE tx.product_id=ta.product_id LIMIT 5) tb
LIMIT 10
¿Hay alguna manera de lograr el listado que necesito?sin usar múltiples consultas en un bucle?
Editar:
Esto es exactamente lo que necesito de MySQL:
SELECT ta.product_id, ta.product_name, tb.transaction_date ...
FROM tbl_product ta
LEFT JOIN tbl_transaction tb ON (tb.product_id=ta.product_id LIMIT 5)
LIMIT 10
Por supuesto, esto es ilegal, ¡pero realmente desearía que no lo fuera!