yang distinct
kata kuncinya adalah melakukan apa yang seharusnya dilakukan, kembalikan satu baris masing-masing dengan nilai kolom yang diberikan. Distinct tidak mengizinkan Anda menentukan yang mana baris tersebut akan dikembalikan, dan jelas dari kueri asli bahwa pemesanan seperti itu diperbolehkan (ada baris dengan id 443 yang mengikuti baris dengan id 429).
Untuk mengontrol baris apa yang akan dikembalikan, Anda perlu memformulasi ulang kueri. Solusi tipikal yang akan saya ambil adalah menggunakan group by
, memilih kolom grup dan baris yang diinginkan dari setiap grup, sesuatu dengan efek
SELECT message.id, MAX(message.created_at) FROM message GROUP BY message.id;
Jika saya perlu melakukan lebih banyak, saya akan menggunakan kueri semacam ini sebagai subpilihan dalam kueri yang lebih besar, mungkin bergabung di bidang id untuk mendapatkan lebih banyak bidang dari baris pilihan, Atau mengurutkan kueri dengan cara tertentu.