Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mendapatkan Kehadiran Terkini untuk Setiap Pengguna Menggunakan Klausa GROUP BY MySQL?
Memilih Nilai Terkini Menggunakan Kumpulan By dalam MySQL
Apabila cuba mendapatkan kehadiran terkini untuk setiap pengguna menggunakan klausa GROUP BY MySQL, anda mungkin menghadapi keadaan di mana kehadiran awal dikembalikan dan bukannya nilai terkini yang dikehendaki.
Menggunakan Subkueri
Satu penyelesaian ialah menggunakan subkueri untuk mengenal pasti cap masa maksimum untuk setiap ahli dan sertai subquery ini dengan jadual utama:
<code class="sql">SELECT * FROM view_event_attendance AS t1 WHERE id_event = 782 AND timestamp = (SELECT MAX(timestamp) FROM view_event_attendance AS t2 WHERE t1.id_member = t2.id_member AND t1.id_event = t2.id_event GROUP BY id_event, id_member) GROUP BY id_event, id_member;</code>
Menggunakan Concatenation dan MAX()
Pendekatan alternatif melibatkan penggabungan cap masa dan nilai kehadiran dan kemudian gunakan MAX() untuk memilih nilai gabungan:
<code class="sql">SELECT substring(max(concat(from_unixtime(timestamp),attendance)) from 20) as attendance FROM view_event_attendance WHERE id_event = 782 GROUP BY id_event,id_member;</code>
Kaedah ini hanya mengembalikan nilai kehadiran terkini untuk setiap ahli.
Memilih Cap Masa/Kehadiran Bercantum
Jika anda memilih untuk mendapatkan cap masa yang digabungkan dan nilai kehadiran, anda boleh menggunakan pertanyaan berikut:
<code class="sql">SELECT concat(from_unixtime(timestamp),attendance), timestamp, attendance FROM view_event_attendance WHERE id_event = 782 GROUP BY id_event,id_member;</code>
Pertimbangan Prestasi
Apabila berurusan dengan set data yang besar, subkueri boleh menjadi mahal dari segi pengiraan. Menggabungkan nilai dan menggunakan MAX() boleh memberikan prestasi yang lebih baik. Walau bagaimanapun, adalah penting untuk menilai keperluan khusus dan ciri pangkalan data untuk menentukan penyelesaian optimum untuk kes penggunaan anda.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Kehadiran Terkini untuk Setiap Pengguna Menggunakan Klausa GROUP BY MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!