gpt4 book ai didi

MySQL - 返回所有没有预订的人?

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

我正在尝试让 MySQL 返回所有在特定时间没有预订的讲师。该查询本质上是搜索查询。因此,基本上返回所有尚未预订的讲师及其详细信息。有人可以帮我完成吗?

SELECT
AddressTypes.AddressTypeName,
Addresses.*,
InstructorSettings.*,
Users.*,
BookedSlots.DateTime
FROM Users
LEFT OUTER JOIN InstructorSettings
ON Users.UserID = InstructorSettings.UserID
LEFT OUTER JOIN Addresses
ON Users.UserID = Addresses.UserID
INNER JOIN AddressTypes
ON Addresses.AddressTypeID = AddressTypes.AddressTypeID
LEFT OUTER JOIN BookedSlots
ON Users.UserID = BookedSlots.UserID
WHERE Users.AccountTYpe = 3 AND Addresses.PostCode1 IN ('l13') AND BookedSlots.DateTime <> '2013-04-25 11:00:00'

上面的查询不返回任何内容,但如果我取出“AND BookedSlots.DateTime <> '2013-04-25 11:00:00'”,它会返回所有讲师详细信息。

数据库

最佳答案

在我看来,您要查找的似乎是指定时间内 BookedSlots 中不存在记录

我不确定这是否被认为是 MySQL 最佳实践,但我通常不使用 join 来完成该任务,而是使用子选择或临时表,如下所示:

SELECT
AddressTypes.AddressTypeName,
Addresses.*,
InstructorSettings.*,
Users.*,
FROM Users
LEFT OUTER JOIN InstructorSettings
ON Users.UserID = InstructorSettings.UserID
LEFT OUTER JOIN Addresses
ON Users.UserID = Addresses.UserID
INNER JOIN AddressTypes
ON Addresses.AddressTypeID = AddressTypes.AddressTypeID
WHERE Users.AccountType = 3 AND Addresses.PostCode1 IN ('l13')
AND Users.UserID not in (SELECT BookedSlots.InstructorID FROM BookedSlots
WHERE BookedSlots.DateTime = '2013-04-25 11:00:00')

编辑:根据评论,更改了选择语句以排除 BookedSlots,并更改了子选择以返回 InstructorId(匹配教师而不是预订中的学生)。

关于MySQL - 返回所有没有预订的人?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16202788/

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