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

Trích xuất dữ liệu MySQL từ 3 bảng - tham gia và tối đa

Bạn muốn có tối đa theo nhóm :

SELECT * FROM Video JOIN (

  SELECT   VideoTags.tag_id, MAX(points) points
  FROM     Video JOIN VideoTags ON Video.id = VideoTags.video_id
  GROUP BY VideoTags.tag_id

) t USING (points) JOIN Tags ON t.tag_id = Tags.id

Xem nó trên sqlfiddle .

Lưu ý rằng truy vấn này trả về tất cả video có số điểm tối đa trong mỗi thẻ, do đó, nhiều hơn một bản ghi sẽ được trả về cho các thẻ gắn liền. Nếu bạn chỉ muốn quay lại một bản ghi trong những trường hợp như vậy, vui lòng chỉ rõ cách xác định video sẽ được quay lại.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sự khác biệt giữa Cơ sở dữ liệu và Lược đồ sử dụng các cơ sở dữ liệu khác nhau?

  2. Mã lỗi:1305. CHỨC NĂNG hoặc THỦ TỤC không tồn tại

  3. Cập nhật MySQL mất (quá) lâu

  4. mysql - bất kỳ cách nào để giúp tìm kiếm toàn văn bản với một chỉ mục khác?

  5. Bật mục cuối cùng trong Mảng JSON trong MySQL 5.7