Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mengisi Jurang Tarikh dalam Pertanyaan MySQL Menggunakan Jadual Pembantu?

Bagaimanakah Saya Boleh Mengisi Jurang Tarikh dalam Pertanyaan MySQL Menggunakan Jadual Pembantu?

Patricia Arquette
Patricia Arquetteasal
2024-12-26 14:01:11895semak imbas

How Can I Fill Date Gaps in MySQL Queries Using a Helper Table?

Mengisi Jurang Tarikh dalam MySQL Menggunakan Jadual Pembantu

Mendapatkan semula data yang tepat daripada set data selalunya memerlukan menangani julat tarikh yang tiada. Dalam MySQL, mengisi jurang tarikh boleh dicapai dengan menggunakan jadual pembantu.

Andaikan anda mempunyai pertanyaan yang mengira dan meringkaskan data untuk tarikh tertentu dalam julat tertentu. Walau bagaimanapun, sesetengah tarikh mungkin tidak mempunyai sebarang rekod, mengakibatkan jurang dalam keputusan. Untuk menangani isu ini, anda boleh menggunakan jadual pembantu yang mengandungi semua tarikh dalam julat yang ditentukan.

SELECT  d.dt AS date,
        COUNT(*) AS total,
        SUM(attitude = 'positive') AS positive,
        SUM(attitude = 'neutral') AS neutral,
        SUM(attitude = 'negative') AS negative
FROM    dates d
LEFT JOIN
        messages m
ON      m.posted_at >= d.dt
        AND m.posted_at < d.dt + INTERVAL 1 DAYS
        AND spam = 0
        AND duplicate = 0
        AND ignore = 0
GROUP BY
        d.dt
ORDER BY
        d.dt

Dalam pertanyaan ini:

  • Tarikh jadual pembantu mengandungi semua tarikh dari permulaan hingga akhir julat yang dikehendaki.
  • LEFT JOIN menggabungkan baris daripada jadual tarikh dengan baris yang sepadan daripada mesej jadual.
  • Untuk setiap tarikh dalam jadual tarikh, pertanyaan mengira baris yang sepadan daripada jadual mesej, walaupun jika tiada padanan.
  • Hasilnya ialah set data lengkap dengan nilai sifar untuk tarikh yang tidak mempunyai sebarang rekod padanan dalam jadual mesej.

Pendekatan ini membolehkan anda mengisi jurang tarikh dan mendapatkan siri data yang berterusan, menyediakan perwakilan yang lebih komprehensif dan tepat hasil anda.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengisi Jurang Tarikh dalam Pertanyaan MySQL Menggunakan Jadual Pembantu?. 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