Mysql
 sql >> база данни >  >> RDS >> Mysql

mysql:групирайте по идентификатор, получете най-висок приоритет за всеки идентификатор

Въпреки че това може да е „приетият“ отговор, производителността на Решението на Марк при нормални обстоятелства е многократно по-добър и еднакво валиден за въпроса, така че непременно търсете неговото решение в производството!

SELECT a.id, a.vehicle_id, a.filename, a.priority
FROM pics a
LEFT JOIN pics b               -- JOIN for priority
ON b.vehicle_id = a.vehicle_id 
AND b.priority > a.priority
LEFT JOIN pics c               -- JOIN for priority ties
ON c.vehicle_id = a.vehicle_id 
AND c.priority = a.priority 
AND c.id < a.id
WHERE b.id IS NULL AND c.id IS NULL

Ако приемем, че „id“ е колона без нула.

[редактиране]:моята грешка, имам нужда от второ присъединяване, не мога да го направя само с едно.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да импортирам csv файл в MySQL Workbench?

  2. MySQL заявка за избор на данни от миналата седмица?

  3. mysql показва Брой редове от друга таблица във всеки ред

  4. Как да дефинирате цяло число без знак в SQLAlchemy

  5. как да възпроизвеждате mp3 аудио, съхранено в mysql blob, използвайки php