mysql - 从数据库中获取不是来自特定月份的值
问题描述
我正在尝试获取在“5 月 19 日”月份未接受任何订单的酒店 ID、酒店名称和酒店类型,但我没有得到正确的输出我的查询有什么问题?
select hotel_details.hotel_id,hotel_name,hotel_type
from hotel_details inner join orders on hotel_details.hotel_id=orders.hotel_id
where Month(order_date) between 1 and 4 or Month(order_date) between 6 and 12
order by hotel_id;
解决方案
NOT EXISTS
2019年5月酒店是否有订单,您可以使用以下方式查询:
SELECT hotel_id, hotel_name, hotel_type
FROM hotel_details
WHERE NOT EXISTS (
SELECT 1
FROM orders
WHERE hotel_id = hotel_details.hotel_id
AND MONTH(order_date) = 5
AND YEAR(order_date) = 2019
)
子查询EXISTS
检查hotel_id
2019 年 5 月的订单是否可用。在过滤器NOT
前面使用 2019 年 5EXISTS
月没有订单的所有酒店。子查询使用 连接到查询的外部hotel_id = hotel_details.hotel_id
。
推荐阅读
- python - 使用 PyMongo 的 Concat 数组因未知组运算符“$concatArrays”而失败
- javascript - 如何在需要时突出显示替代隐藏复选框输入的复选框伪元素
- javascript - 是否可以在纯 JavaScript 中的 addEventListenter 上添加“如果未单击”条件?
- javascript - 在 vuejs 中联合两个或多个对象
- dart - 我正在执行 http 请求并尝试将数据存储在文件中,但文件始终为空,那么为什么会发生这种情况以及如何解决这个问题?
- java - ExecutorService 问题
- android - 自定义可扩展/可折叠 CardView
- batch-file - 任务列表问题中的批处理变量
- scala - 在不同大小的向量之间映射键值
- angular - 在具有不同状态的页面内导航时重新初始化组件