mysql - SQL - 如何使用 WHERE 条件包含零结果的行
问题描述
我有一个查询,要选择在所有可用日期预订特定酒店的人数。
基本上,我有两张桌子:
dates_event列出了我有 3 个日期的所有可用日期
register_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 条件似乎会释放所有空行时,我找到了实际显示零但没有的答案。
关于如何实现这一目标的任何想法?
解决方案
把你registered_hotels.idhotel='1'
放在条件而不是在哪里
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
and registered_hotels.idhotel='1'
GROUP by dates_event.date_full
推荐阅读
- python-3.x - 在 Python 中递归地求和并打印树中的所有节点名称和值
- haskell - 泛型:带有类的 syb 的当前状态
- javascript - 如何在Vue中更改特定的复选框标签类@change?
- python - 使用预拟合 lmfit 模型预测新数据集中的值
- r - RStudio Fedora 32 中的输入键盘源问题
- php - 如何将 phpmyAdmin DB 中的数据与表单数据 laravel 进行比较
- matlab - 在 Matlab 中以 x 轴类型作为日期时间的对数 y 轴绘图
- laravel - 编译的 jrxml/jasper 无法通过 Jasperstudio 中引用的库路径加载外部 jar
- python - 为什么我不能通过 Internet 创建视频或发送视频数据?
- python - 为什么我的生成器函数变成了不可迭代的浮点对象?