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

Wybierz ostatni wiersz z GROUP BY w MySQL

Chcesz maksymalna grupa ; w skrócie, pogrupuj tabelę płatności, aby zidentyfikować maksymalne rekordy, a następnie połącz wynik z powrotem, aby pobrać inne kolumny:

SELECT users.*, payments.method, payments.id AS payment_id
FROM   payments NATURAL JOIN (
  SELECT   user_id, MAX(id) AS id 
  FROM     payments
  GROUP BY user_id
) t RIGHT JOIN users ON users.id = t.user_id

Zwróć uwagę, że MAX(id) może nie być „najnowszą płatnością ”, w zależności od aplikacji i schematu:zwykle lepiej jest określić „najnowsze " na podstawie TIMESTAMP niż na podstawie syntetycznych identyfikatorów, takich jak AUTO_INCREMENT kolumna klucza głównego.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Laravel zagnieżdżone relacje

  2. mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows itd... oczekuje, że parametr 1 będzie zasobem

  3. Spark:wczytywanie dużej tabeli MySQL do DataFrame kończy się niepowodzeniem

  4. Odmowa uprawnień podczas montowania woluminu Docker w OSX

  5. SQL LIKE % wewnątrz tablicy