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

MySQL извлича последния запис за група

GROUP BY е предназначена да се използва с агрегиращи функции, в противен случай избира произволно един ред на група. Вашето решение (по-горе и във вашия самостоятелен отговор) работи, защото MySQL изглежда запазва първия ред от всяка група, но не сте гарантирани, че това винаги ще се случва.

Можете да получите датата на последния коментар за всеки post_id така.

select post_id, MAX(datetime) as latest from post_comments group by post_id

Използвайте го, за да изберете последния коментар:

SELECT t1.* FROM post_comments AS t1
JOIN (
    SELECT post_id, MAX(datetime) AS latest FROM post_comments GROUP BY post_id
) AS t2
ON t1.post_id = t2.post_id AND t1.datetime = t2.latest


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да извлечем уникални редове въз основа на комбинации от стойности на колони?

  2. Задържане на множество елементи в колона на mysql

  3. Вътрешният цикъл while не работи

  4. Излезте от MySQL, без да се рестартира на El Capitan

  5. функция за дезинфекция на входа в базата данни Mysql