Mengatasi Isu Pertanyaan SQL: Memaparkan Kiraan Sifar dalam Agregasi COUNT
Dalam senario yang dibentangkan, objektifnya adalah untuk menentukan kiraan langganan untuk semua pekerja, malah mereka yang tiada entri dalam jadual langganan mel. Pertanyaan awal menggunakan gabungan dalaman hanya mengembalikan kiraan untuk pekerja yang mempunyai rekod sepadan dalam jadual langganan mel, tidak termasuk pekerja tanpa langganan.
Untuk menyelesaikan masalah ini, pertimbangkan untuk menggunakan gabungan kiri (LEFT JOIN) dalam pertanyaan. Gabungan kiri mengekalkan semua baris dari jadual kiri (Pekerja), walaupun tiada baris yang sepadan dalam jadual kanan (mailingSubscriptions). Pertanyaan berikut menggabungkan gabungan kiri untuk mencapai hasil yang diingini:
SELECT c.name, count(m.mailid) FROM Employee c LEFT JOIN mailingSubscriptions m ON c.Name = m.EmployeeName GROUP BY c.name;
Pertanyaan yang disemak ini memastikan bahawa semua pekerja disertakan dalam keputusan dan COUNT pengagregatan akan mengembalikan 0 untuk pekerja tanpa sepadan dengan langganan dalam melSubscriptions meja. Cantuman luar menghapuskan pengehadan cantuman dalam, yang hanya memaparkan baris dengan rekod yang sepadan dalam kedua-dua jadual.
Dengan melaksanakan pertanyaan yang diubah suai dengan cantuman kiri, jadual akan memaparkan kiraan langganan dengan betul untuk semua pekerja, termasuk yang tanpa langganan. Ini memberikan perwakilan data yang lengkap dan tepat, dengan mengambil kira kedua-dua pekerja dengan dan tanpa langganan dalam jadual melSubscriptions.
Atas ialah kandungan terperinci Bagaimana untuk Memaparkan Kiraan Sifar untuk Pekerja Tanpa Langganan dalam Pertanyaan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!