Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memilih Baris dengan Rekod_Tarikh Minimum untuk Setiap ID Unik dalam Jadual?

Bagaimana untuk Memilih Baris dengan Rekod_Tarikh Minimum untuk Setiap ID Unik dalam Jadual?

Barbara Streisand
Barbara Streisandasal
2025-01-17 20:20:13473semak imbas

How to Select Rows with the Minimum Record_Date for Each Unique ID in a Table?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn