Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Giới hạn kết quả từ bảng đã tham gia thành một hàng

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

Lưu ý cách nó tham gia vào bảng product_photos hai lần. WHERE ph2.photo_order IS NULL sẽ ném ra tất cả trừ thứ tự ảnh thấp nhất. Tuy nhiên, nó sẽ không bảo vệ bạn khỏi tổ hợp product_id / photo_orders trùng lặp, bạn có thể thêm GROUP BY trên p.id nếu đúng như vậy.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Xử lý tính toàn vẹn của cơ sở dữ liệu

  2. Chọn bản ghi theo thứ tự id cha

  3. Flask-Sqlalchemy Thiếu BEGIN dường như gây ra các phiên không đồng bộ hóa

  4. cách sử dụng mysql_data_seek với PDO?

  5. JPA EclipseLink DatabaseException:'table foo.SEQUENCE không tồn tại'