Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Menunjukkan Rekod Bulanan dalam MySQL Walaupun dengan Data yang Hilang?

Bagaimana untuk Menunjukkan Rekod Bulanan dalam MySQL Walaupun dengan Data yang Hilang?

Susan Sarandon
Susan Sarandonasal
2024-11-06 22:01:02512semak imbas

How to Show Monthly Records in MySQL Even with Missing Data?

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:

  • Jadual terbitan "m" menjana jadual maya dengan lajur bernama "merge_date" yang mewakili semua bulan dalam tahun tertentu.
  • Operasi LEFT JOIN memautkan jadual "pengguna" ke jadual terbitan "m. "
  • Kumpulan mengikut klausa mengagregatkan hasil mengikut tarikh_gabungan untuk mengira bilangan pengguna bagi setiap bulan.
  • Tertib mengikut klausa digunakan untuk mengisih keputusan mengikut bulan dalam tertib menaik.

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!

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