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
Lepaskan: 2024-12-26 14:01:11
asal
891 orang telah melayarinya

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
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan