Hal ID akan tetap bekerja secara teoritis, asalkan ID tidak pernah berubah...
Saya akan merekomendasikan menggunakan bidang stempel waktu dalam struktur tabel yang disebut "tanggal" dan menggunakan "CURRENT_TIMESTAMP" sebagai nilai default, ini akan secara otomatis mengisi tanggal/waktu pada catatan saat dimasukkan...
Pesan dengan bidang ini DESC, batasi x
Juga, saya telah mengalami banyak kasus data yang salah muncul berkat pengelompokan... Pastikan data Anda benar sebelum ORDER BY dan LIMIT diterapkan
Untuk mendapatkan kiriman dari pengguna1 ke pengguna1 tidak perlu mengelompokkan berdasarkan:
SELECT * FROM posts
WHERE toID=fromID
ORDER BY date DESC LIMIT 3
Untuk mendapatkan kiriman dari * ke pengguna1:
SELECT * FROM posts
WHERE toID="USER1_ID"
ORDER BY date DESC LIMIT 3
Untuk mendapatkan pos dari * ke pengguna1, hanya pengguna unik:
SELECT * FROM posts
WHERE toID="USER1_ID"
GROUP BY FromID
ORDER BY date DESC LIMIT 3
Kadang-kadang Anda akan mengalami masalah di mana catatan GROUPED tidak diurutkan oleh ORDER BY, karena ORDER BY diterapkan pada hasil SETELAH pengelompokan diterapkan... Untuk mencapai solusi:
SELECT * FROM (
SELECT * FROM posts
WHERE toID="USER1_ID"
ORDER BY date DESC
) as `derived` GROUP BY FromID LIMIT 3
Untuk Mendapatkan 3 pengguna terakhir yang baru-baru ini mengirim kiriman sendiri:
SELECT * FROM (
SELECT * FROM posts
WHERE toID=fromID
ORDER BY date DESC
) as `derived` GROUP BY FromID LIMIT 3