Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Beschränken Sie die Ergebnisse aus der verknüpften Tabelle auf eine Zeile

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

Beachten Sie, wie es zweimal mit der Tabelle product_photos verknüpft wird. Der WHERE ph2.photo_order IS NULL wirft alle bis auf die niedrigste Fotobestellung weg. Es schützt Sie jedoch nicht vor einer doppelten Kombination aus product_id / photo_orders, Sie könnten ein GROUP BY hinzufügen auf p.id wenn das der Fall ist.