我如何查询,就像我想要这个输出一样,比如我按我的 tbl_clinics.clinic_name 将其分组。现在我的查询发生了什么?为什么会这样,它没有显示我的零值,就像我想要这样的输出:
clinic name | total_check
Clinic 1 | 4
Clinic 2 | 0
Clinic 3 | 0
Clinic 4 | 0
这是我的查询:
SELECT
tbl_clinics.clinic_name,
COALESCE(COUNT(tbl_check_up.check_up_id),0) AS total_check
FROM
tbl_clinics
LEFT OUTER JOIN tbl_check_up ON tbl_clinics.clinic_id = tbl_check_up.clinic_id
WHERE tbl_clinics.user_id = "102" AND MONTH(tbl_check_up.check_up_date) = "02"
GROUP BY tbl_clinics.clinic_name
我所得到的只是这些:
clinic_name | total_check
Clinic 1 | 4
为什么它没有显示我的其他诊所? ..我该如何操纵这些? 。请帮助我从我想要的输出中获得正确的输出,并向我解释为什么我的输出从我想要的输出中表现不佳。
最佳答案
WHERE 子句将确定将输出哪些行。如果您希望输出表“tbl_clinics”中的所有记录,请尝试以下操作:
SELECT tbl_clinics.clinic_name,
Count(tbl_check_up.check_up_id) AS total_check
FROM tbl_clinics
LEFT JOIN tbl_check_up
ON tbl_clinics.clinic_id = tbl_check_up.clinic_id
AND tbl_clinics.user_id = "102"
AND Month(tbl_check_up.check_up_date) = "02"
GROUP BY tbl_clinics.clinic_name
另外,我认为 COUNT() 上的 COALESCE() 是不必要的,因为当没有遇到行时,COUNT() 将始终返回 0,而不是 NULL。
关于mysql 查询显示查询中为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43444905/