当我得到 null = 0 其他返回行的值时,如何显示我的其他查询行
How can i display my other query rows when i got null = 0 values of other returned rows
我有一个三张表,我曾经使用左外连接来查看我所有的诊所名称,包括我需要的数据的总和和计数,我这里有下面的表格截图:
现在,我这样查询:
SELECT
tbl_clinics.clinic_name,
COALESCE(COUNT(tbl_check_up.check_up_id),0) AS totalpatient,
COALESCE(SUM(tbl_bill.bill_amt),0) AS totalearn
FROM
tbl_clinics
LEFT OUTER JOIN tbl_check_up ON tbl_clinics.clinic_id = tbl_check_up.clinic_id
LEFT OUTER JOIN tbl_bill ON tbl_bill.bill_id = tbl_check_up.bill_id
WHERE tbl_clinics.user_id = 102
我的查询输出是这样的:
问题:
现在,我的问题是我想通过显示空值到零值来展示我的其他诊所。在我的数据中,我有 3 个诊所 user_id = 102,但为什么只显示诊所 1? .我想要像下面这样的输出,其中显示 tbl_check_up 中没有与账单相同的 Clinic Id 为 2 和 3 的值。
+---------------+---------------+------------+
| Clinic Name | Total Patient | Total Earn |
+---------------+---------------+------------+
| Clinic 1 | 4 | 800.00 |
+---------------+---------------+------------+
| Clinic 2 | 0 | 0 |
+---------------+---------------+------------+
| Clinic 3 | 0 | 0 |
+---------------+---------------+------------+
这是您的查询(COALESCE()
对于 COUNT()
不是必需的):
SELECT c.clinic_name,
COUNT(cu.check_up_id) AS totalpatient,
COALESCE(SUM(b.bill_amt), 0) AS totalearn
FROM tbl_clinics c LEFT OUTER JOIN
tbl_check_up cu
ON c.clinic_id = cu.clinic_id LEFT OUTER JOIN
tbl_bill b
ON b.bill_id = cu.bill_id
WHERE c.user_id = 102
GROUP BY c.clinic_name;
我认为您只需要 GROUP BY
。
我有一个三张表,我曾经使用左外连接来查看我所有的诊所名称,包括我需要的数据的总和和计数,我这里有下面的表格截图:
现在,我这样查询:
SELECT
tbl_clinics.clinic_name,
COALESCE(COUNT(tbl_check_up.check_up_id),0) AS totalpatient,
COALESCE(SUM(tbl_bill.bill_amt),0) AS totalearn
FROM
tbl_clinics
LEFT OUTER JOIN tbl_check_up ON tbl_clinics.clinic_id = tbl_check_up.clinic_id
LEFT OUTER JOIN tbl_bill ON tbl_bill.bill_id = tbl_check_up.bill_id
WHERE tbl_clinics.user_id = 102
我的查询输出是这样的:
问题: 现在,我的问题是我想通过显示空值到零值来展示我的其他诊所。在我的数据中,我有 3 个诊所 user_id = 102,但为什么只显示诊所 1? .我想要像下面这样的输出,其中显示 tbl_check_up 中没有与账单相同的 Clinic Id 为 2 和 3 的值。
+---------------+---------------+------------+
| Clinic Name | Total Patient | Total Earn |
+---------------+---------------+------------+
| Clinic 1 | 4 | 800.00 |
+---------------+---------------+------------+
| Clinic 2 | 0 | 0 |
+---------------+---------------+------------+
| Clinic 3 | 0 | 0 |
+---------------+---------------+------------+
这是您的查询(COALESCE()
对于 COUNT()
不是必需的):
SELECT c.clinic_name,
COUNT(cu.check_up_id) AS totalpatient,
COALESCE(SUM(b.bill_amt), 0) AS totalearn
FROM tbl_clinics c LEFT OUTER JOIN
tbl_check_up cu
ON c.clinic_id = cu.clinic_id LEFT OUTER JOIN
tbl_bill b
ON b.bill_id = cu.bill_id
WHERE c.user_id = 102
GROUP BY c.clinic_name;
我认为您只需要 GROUP BY
。