Mysql
 sql >> Baza danych >  >> RDS >> Mysql

mysql:group by ID, uzyskaj najwyższy priorytet dla każdego ID

Chociaż może to być „akceptowana” odpowiedź, wydajność Rozwiązanie Marka jest w normalnych okolicznościach wielokrotnie lepszy i równie ważny dla pytania, więc na wszelki wypadek zdecyduj się na jego rozwiązanie w produkcji!

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

Zakładając, że „id” jest kolumną nie dopuszczającą wartości null.

[edytuj]:mój błąd, potrzebuję drugiego dołączenia, nie mogę tego zrobić za pomocą jednego.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kolejność MySQL według najlepszego dopasowania

  2. Status pokazu MySQL - połączenia aktywne czy całkowite?

  3. DbUpdateConcurrencyException przy użyciu Entity Framework 6 z MySql

  4. Wykonaj nieprzetworzone zapytanie na MySQL Loopback Connector

  5. Jak wyłączyć indeks w innodb