ID-grejen skulle fortfarande fungera teoretiskt, förutsatt att ID:n aldrig ändras...
Jag skulle rekommendera att du använder ett tidsstämpelfält i tabellstrukturen som heter "datum" och använder "CURRENT_TIMESTAMP" som standardvärde, detta kommer att automatiskt fylla i datum/tid på posten vid infogning...
Ordna efter detta fält DESC, limit x
Jag har också upplevt många fall av fel data som visas tack vare gruppering... Se till att dina uppgifter är korrekta innan ORDER BY och LIMIT tillämpas
För att få inlägg från användare1 till användare1 behöver du inte gruppera efter:
SELECT * FROM posts
WHERE toID=fromID
ORDER BY date DESC LIMIT 3
För att få inlägg från * till användare1:
SELECT * FROM posts
WHERE toID="USER1_ID"
ORDER BY date DESC LIMIT 3
För att få inlägg från * till användare1, endast unika användare:
SELECT * FROM posts
WHERE toID="USER1_ID"
GROUP BY FromID
ORDER BY date DESC LIMIT 3
Ibland kommer du att stöta på problemet där GROUPED-poster inte sorteras efter ORDER BY, eftersom ORDER BY tillämpas på resultatet EFTER att grupperingen har tillämpats... För att uppnå en lösning:
SELECT * FROM (
SELECT * FROM posts
WHERE toID="USER1_ID"
ORDER BY date DESC
) as `derived` GROUP BY FromID LIMIT 3
För att få de senaste 3 användarna som senast har skickat ett inlägg till sig själva:
SELECT * FROM (
SELECT * FROM posts
WHERE toID=fromID
ORDER BY date DESC
) as `derived` GROUP BY FromID LIMIT 3