sql >> Databáze >  >> RDS >> Mysql

MySQL vrátí první řádek spojené tabulky

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
       )

Index na (country_id, rating, id) pro tabulku MyISAM nebo (country_id, rating) pro tabulku InnoDB by pomohlo.

Tento dotaz zobrazí pouze jednu duck na zemi, i když více než jedna má stejné hodnocení. Pokud chcete, aby se objevily kachny s nerozhodným hodnocením, použijte GROUP BY @imm odpovědět.



  1. Funkce MySQL PI() – vrátí hodnotu π (pi)

  2. MySQL – výchozí hodnota pro TIMESTAMP(3)

  3. 5 způsobů, jak získat krátký název měsíce z data na serveru SQL

  4. Ochrana SQL Injection pouze pomocí str_replace