Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL mengembalikan baris pertama dari tabel yang digabungkan

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
       )

Indeks di (country_id, rating, id) untuk tabel MyISAM atau (country_id, rating) untuk tabel InnoDB, akan membantu.

Kueri ini hanya akan menampilkan satu duck per negara, bahkan dengan lebih dari satu yang memiliki peringkat yang sama. Jika Anda ingin bebek dengan peringkat terikat muncul, gunakan GROUP BY @imm jawabannya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL ORDER BY menggunakan pernyataan yang disiapkan

  2. Bisakah saya secara membabi buta mengganti semua fungsi mysql_ dengan mysqli_?

  3. Dapatkan baris dari tabel mysql ke array php

  4. Bisakah saya menggunakan ON DUPLICATE KEY UPDATE dengan kueri INSERT menggunakan opsi SET?

  5. Menghapus baris dengan kunci asing referensi sendiri