Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Zurückgeben der 'letzten' Zeile jedes 'group by' in MySQL

Versuchen Sie diese Abfrage -

SELECT t1.* FROM foo t1
  JOIN (SELECT uid, MAX(id) id FROM foo GROUP BY uid) t2
    ON t1.id = t2.id AND t1.uid = t2.uid;

Verwenden Sie dann EXPLAIN Abfragen zu analysieren.

SELECT t1.* FROM foo t1
  LEFT JOIN foo t2
    ON t1.id < t2.id AND t1.uid = t2.uid
WHERE t2.id is NULL;