gpt4 book ai didi

mysql 请求 - 寻找不存在的记录

转载 作者:行者123 更新时间:2023-11-30 23:19:40 25 4
gpt4 key购买 nike

我有一个简单的教室预订系统,有两张 table :

房间:

 1. id
2. name
3. localisation

日历:

 1. id
2. idroom
3. year
4. month
5. days

days 是一个包含 31 个字符的字符串(一天 1 个字符)。字符可以是:“0”为自由; “1”为第一步预订; “3”代表占用

日历是在需要时创建的,所以我的问题是当我请求未占用的教室时,要获取在我检查的期间没有日历条目的教室。例如 classroom1 从 01/12/2013 到 03/02/2013 被占用,我没有更多条目在我这个教室的日历表里。如果我要求从 01/12/2013 到 04/12/2013 进行预订,我不知道如何在我的结果中包含 classroom1。月份也可以为空,年份也可以。我尝试左连接,但“为空”但没有成功。

这是我请求的第一部分,它有效,但在该期间不显示“没有日历的房间”:

SELECT DISTINCT room.id
FROM room LEFT JOIN
calendar
ON room.id=calendar.idroom
WHERE (calendar.year=2013 AND calendar.month=12 and calendar.days like "0000%")

感谢您的帮助。

最佳答案

问题在于 where 子句使用了 calendar 表,因此它取消了 left join 的效果。您可以通过将逻辑混合到 on 子句中来解决此问题:

SELECT DISTINCT room.id
FROM room LEFT JOIN
calendar
ON room.id=calendar.idroom and
(calendar.year=2013 AND calendar.month=12 and calendar.days like "0000%")

关于mysql 请求 - 寻找不存在的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16063570/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com