【发布时间】:2019-04-17 09:43:16
【问题描述】:
我有一个查询,要选择在所有可用日期预订特定酒店的人数。
基本上,我有两张桌子:
dates_event列出了我有 3 个日期的所有可用日期
registered_hotels 列出所有具有相应酒店、日期和用户 ID 的人的注册
诀窍是如果没有人为特定日期预订酒店,我想显示“0”。
这是我的查询:
SELECT dates_event.date_full, count(registered_hotels.id_registered)
FROM dates_event
LEFT JOIN registered_hotels ON dates_event.date_id = registered_hotels.date_id
WHERE registered_hotels.idhotel='1'
GROUP by dates_event.date_full
它显示这个:
+-------------+----------------------------------------+
| date_full | count(registered_hotels.id_registered) |
+-------------+----------------------------------------+
| 2019-09-15 | 1 |
| 2019-09-16 | 1 |
+-------------+----------------------------------------+
虽然我想显示这个:
+-------------+----------------------------------------+
| date_full | count(registered_hotels.id_registered) |
+-------------+----------------------------------------+
| 2019-09-15 | 1 |
| 2019-09-16 | 1 |
| 2019-09-17 | 0 |
+-------------+----------------------------------------+
当我有一个特定的 WHERE 条件似乎会释放所有空行时,我找到了实际显示零的答案。
关于如何实现这一点的任何想法?
【问题讨论】: