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

MySQL trả về hàng đầu tiên của một bảng đã tham gia

SELECT c.*, d.*
FROM country c 
  INNER JOIN ducks d 
    ON d.id =                         --- guessing the ducks Primary Key here
       ( SELECT dd.id                 --- and here  
         FROM ducks dd
         WHERE c.id = dd.country_id
         ORDER BY dd.rating DESC
         LIMIT 1
       )

Chỉ mục trên (country_id, rating, id) cho bảng MyISAM hoặc (country_id, rating) cho bảng InnoDB, sẽ hữu ích.

Truy vấn này sẽ chỉ hiển thị một duck mỗi quốc gia, ngay cả khi có nhiều quốc gia có cùng xếp hạng. Nếu bạn muốn những con vịt có xếp hạng được ràng buộc xuất hiện, hãy sử dụng GROUP BY của @ imm's câu trả 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. Khó khăn khi cài đặt gem mysql trên Ubuntu

  2. Phân tích cú pháp chuỗi thành ngày mysql

  3. Sử dụng PHP DOM để tạo tệp XML từ dữ liệu MySQL

  4. MySql cursors.execute () chỉ với một tham số:Tại sao một chuỗi được cắt thành một danh sách?

  5. Tính tổng các giá trị của mảng nhiều chiều theo khóa không có vòng lặp