sql >> Databáze >  >> RDS >> Mysql

Omezit výsledky ze spojené tabulky na jeden řádek

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

Všimněte si, jak se dvakrát připojuje k tabulce product_photos. WHERE ph2.photo_order IS NULL vyhodí všechny fotky kromě nejnižšího pořadí. Před duplicitní kombinací product_id / photo_orders vás to neochrání, můžete přidat GROUP BY na p.id, pokud tomu tak je.



  1. MYSQL vyberte poslední 3 řádky, seřaďte podle ASC

  2. MySQL:NULL vs

  3. Jak vygenerovat/autoincrement guid na insert bez triggerů a manuálních insertů v mysql?

  4. Jak vrátit všechna zakázaná omezení cizích klíčů v SQL Server (příklad T-SQL)