Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Limitar os resultados da tabela unida a uma linha

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

Observe como ele se junta à tabela product_photos duas vezes. O WHERE ph2.photo_order IS NULL jogará fora todas as fotos, exceto a mais baixa. No entanto, ele não o protegerá contra a combinação de product_id / photo_orders duplicada, você pode adicionar um GROUP BY em p.id se for esse o caso.