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

Изберете най-новия ред с GROUP BY в MySQL

Искате групов максимум ; по същество групирайте таблицата за плащания, за да идентифицирате максималните записи, след което свържете резултата обратно със себе си, за да извлечете другите колони:

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

Обърнете внимание, че MAX(id) може да не е „последното плащане ", в зависимост от вашето приложение и схема:обикновено е по-добре да определите "най-новото " въз основа на TIMESTAMP отколкото на базата на синтетични идентификатори като AUTO_INCREMENT колона първичен ключ.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:SQL грешка:1140, SQLState:42000

  2. как да проверите дали пулът на връзките на HikariCP работи или не в Java?

  3. HTML - Промяна\Актуализиране на съдържанието на страницата без опресняване\презареждане на страницата

  4. com.mysql.jdbc.MysqlDataTruncation:Съкращаване на данни:Данните са твърде дълги за колона 'column_name'

  5. импортирайте връзката ми с базата данни с python