Mysql
 sql >> Database >  >> RDS >> Mysql

Limita i risultati della tabella unita a una riga

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

Nota come si unisce alla tabella product_photos due volte. Il WHERE ph2.photo_order IS NULL eliminerà tutto tranne l'ordine di foto più basso. Tuttavia, non ti proteggerà dalla combinazione di product_id / photo_orders duplicati, puoi aggiungere un GROUP BY su p.id se questo è il caso.