sql >> データベース >  >> RDS >> Mysql

MySQLは結合されたテーブルの最初の行を返します

    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
           )
    

    (country_id, rating, id)のインデックス MyISAMテーブルまたは(country_id, rating)の場合 InnoDBテーブルの場合、役に立ちます。

    このクエリでは、duckが1つだけ表示されます 同じ評価を持つ国が複数ある場合でも、国ごとに。評価が同点のアヒルを表示したい場合は、@immのGROUP BYを使用してください 答えます。



    1. SQL ServerでのCOS()の例

    2. Moodleのパフォーマンスをベンチマークする方法

    3. JavaをMySQLデータベースに接続します

    4. 複数の列を持つSQLピボット