sql >> Base de Datos >  >> RDS >> Mysql

Limite los resultados de la tabla unida a una fila

SELECT p.*, ph.*
FROM products AS p
INNER JOIN product_photos AS ph
    ON p.product_id = ph.product_id
LEFT JOIN product_photos AS ph2
    ON p.product_id = ph2.product_id
    AND ph2.photo_order < ph.photo_order
WHERE ph2.photo_order IS NULL
ORDER BY p.product_title ASC

Tenga en cuenta cómo se une a la tabla product_photos dos veces. El WHERE ph2.photo_order IS NULL descartará todo menos el pedido de fotos más bajo. Sin embargo, no lo protegerá contra la combinación duplicada de product_id / photo_orders, podría agregar un GROUP BY en p.id si ese es el caso.