sql >> Databáze >  >> RDS >> Mysql

MySQL načte nejnovější záznam pro skupinu

GROUP BY je určen pro použití s ​​agregačními funkcemi, jinak libovolně vybere jeden řádek na skupinu. Vaše řešení (nad a ve vaší vlastní odpovědi) funguje, protože se zdá, že MySQL si ponechává první řádek každé skupiny, ale není zaručeno, že k tomu dojde vždy.

U každého post_id můžete získat datum posledního komentáře takhle.

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

Použijte jej k výběru nejnovějšího komentáře:

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. Jak se přihlásit do MySQL jako jiný uživatel?

  2. MySQL LOAD_FILE() načte hodnoty null

  3. Historizace databáze

  4. Co je nového v MariaDB Server 10.5?