Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Ogranicz wyniki z tabeli połączonej do jednego wiersza

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

Zwróć uwagę, jak dwukrotnie łączy się z tabelą product_photos. WHERE ph2.photo_order IS NULL wyrzuci wszystko oprócz najniższej kolejności zdjęć. Nie ochroni Cię to jednak przed zduplikowanymi kombinacjami product_id / photo_orders, możesz dodać GROUP BY na p.id, jeśli tak jest.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Synchronizacja bazy danych Mysql między dwiema bazami danych

  2. Czy należy używać wartości NULL lub pustego ciągu do reprezentowania żadnych danych w kolumnie tabeli?

  3. Innodb; wiele katalogów danych

  4. Jak monitorować serwer ProxySQL za pomocą Prometheus i ClusterControl

  5. 3 sposoby na znalezienie pozycji podciągu w ciągu w MySQL