Rumah > Artikel > pangkalan data > Bagaimana untuk Menunjukkan Rekod Bulanan dalam MySQL Walaupun dengan Data yang Hilang?
Pertanyaan MySQL untuk Menunjukkan Rekod Bulanan Walaupun dengan Data Tiada
Soalan:
Dalam situasi di mana anda perlu mendapatkan semula rekod mengikut bulan daripada jadual pengguna, anda mungkin menghadapi data yang hilang untuk bulan-bulan tertentu. Bagaimanakah anda boleh mengatasi isu ini dan memastikan paparan semua bulan, sama ada ia mengandungi data atau tidak?
Jawapan:
Untuk mendapatkan semula rekod pengguna mengikut bulan, termasuk yang dari bulan tanpa entri, penyelesaian boleh dilaksanakan menggunakan gabungan jadual terbitan dan gabungan kiri.
SELECT COUNT(u.userID) AS total, m.month, YEAR(m.merge_date) AS year FROM ( SELECT '2013-01-01' AS merge_date UNION SELECT '2013-02-01' AS merge_date UNION SELECT '2013-03-01' AS merge_date UNION SELECT '2013-04-01' AS merge_date UNION SELECT '2013-05-01' AS merge_date UNION SELECT '2013-06-01' AS merge_date UNION SELECT '2013-07-01' AS merge_date UNION SELECT '2013-08-01' AS merge_date UNION SELECT '2013-09-01' AS merge_date UNION SELECT '2013-10-01' AS merge_date UNION SELECT '2013-11-01' AS merge_date UNION SELECT '2013-12-01' AS merge_date ) AS m LEFT JOIN users u ON MONTH(m.merge_date) = MONTH(u.userRegistredDate) AND YEAR(m.merge_date) = YEAR(u.userRegistredDate) GROUP BY m.merge_date ORDER BY 1+1;
Penjelasan:
Dengan menggunakan gabungan kiri, pertanyaan mendapatkan semula data daripada kedua-dua jadual "pengguna" dan jadual terbitan, memastikan keputusan merangkumi semua bulan, walaupun tanpa sebarang rekod pengguna yang sepadan. Kaedah ini berkesan mengendalikan situasi di mana data untuk bulan tertentu tiada.
Atas ialah kandungan terperinci Bagaimana untuk Menunjukkan Rekod Bulanan dalam MySQL Walaupun dengan Data yang Hilang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!