sql >> Database teknologi >  >> RDS >> Mysql

MySQL returnerer første række i en sammenføjet tabel

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
       )

Et indeks på (country_id, rating, id) for MyISAM-tabel eller (country_id, rating) for InnoDB tabel, ville hjælpe.

Denne forespørgsel vil kun vise én duck pr. land, selv med mere end én med samme vurdering. Hvis du vil have ænder med bundet bedømmelse, skal du bruge @imms GROUP BY svar.



  1. Er der ulemper ved at bruge en generisk varchar(255) til alle tekstbaserede felter?

  2. NodeJS MySQL:mål forespørgsels eksekveringstid

  3. MySQL Workbench

  4. Hvordan bruger man PHP-streng i mySQL LIKE-forespørgsel?