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

OBJEDNEJTE PODLE jednoho ID, pokud je v jedné tabulce více stejných ID

Chceme nejnovější příspěvek na každý jedinečný vlákno, můžeme to udělat...

Pomocí GROUP BY a HAVING .

SELECT * 
FROM Posts
JOIN Discussions
    on Discussions.discussion_id = Posts.discussion_id
GROUP BY Discussions.discussion_id
HAVING Posts.post_time = max(Posts.post_time)
ORDER BY Posts.post_time DESC

Toto je příklad ! Ujistěte se, že jej používáte k úpravě svého vlastního, je to však docela jednoduché. Nemám databázi, abych to otestoval, ale jsem testován s vlastními daty a různými sloupci a fungovalo to.

Poznámka: To předpokládá, že každé ID je identické v obou tabulkách. Také předpokládá, že post_time je nějaká časová hodnota, která se zvyšuje, čím novější je příspěvek (tj. SQL Timestamp).




  1. ORA-01843 není platný měsíc - Porovnání dat

  2. Platné modifikátory pro funkce data/času SQLite

  3. Maximální skutečný prostor ve varbinary(max) na serveru SQL Server

  4. Existuje nějaký rozdíl mezi varchar(10) a varchar(1000), když ukládáme řetězec, jehož délka je menší než 10?