Mysql
 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 на държава, дори при повече от една с еднакъв рейтинг. Ако искате да се показват патици с равен рейтинг, използвайте GROUP BY на @imm отговор.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. избиране на редове, които са се появили повече от три пъти

  2. Разбор на изключително големи XML файлове в php

  3. Как да работи MySQL, нечувствителен към малки и малки букви и нечувствителен към акцент в UTF-8

  4. Как да променя паролата на root потребителя в MySQL?

  5. Как да изтегля всички идентификатори на продукта, skus, имена на продукти, описание в magento, използвайки само mysql?