Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memilih Baris dengan Rekod_Tarikh Minimum untuk Setiap ID Unik dalam Jadual?
Mengambil Baris dengan Tarikh Rekod Terawal untuk Setiap ID Unik
Bekerja dengan jadual yang mengandungi nilai id
pendua dan perlu memilih hanya baris dengan record_date
yang paling awal untuk setiap id
unik boleh menjadi rumit. Kaedah standard sering bergelut apabila nilai record_date
tidak unik. Penyelesaian ini mengendalikan senario sedemikian dengan cekap:
Pertanyaan SQL berikut dengan berkesan memilih baris yang dikehendaki:
<code class="language-sql">SELECT mt.* FROM MyTable mt INNER JOIN ( SELECT id, MIN(record_date) AS MinDate FROM MyTable GROUP BY id ) t ON mt.id = t.id AND mt.record_date = t.MinDate;</code>
Pertanyaan ini menggunakan subkueri untuk terlebih dahulu menentukan minimum record_date
bagi setiap id
. Subkueri mengumpulkan baris mengikut id
dan kemudian menggunakan fungsi MIN()
untuk mencari record_date
minimum dalam setiap kumpulan.
Pertanyaan luar kemudiannya menggabungkan hasil subkueri kembali ke jadual asal (MyTable
) menggunakan kedua-dua id
dan record_date
. Ini memastikan bahawa hanya baris yang sepadan dengan minimum record_date
untuk setiap id
disertakan dalam set keputusan akhir. Ini berkesan mengalih keluar pendua dan hanya mengembalikan baris dengan record_date
yang paling awal untuk setiap id
unik.
Atas ialah kandungan terperinci Bagaimana untuk Memilih Baris dengan Rekod_Tarikh Minimum untuk Setiap ID Unik dalam Jadual?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!