【发布时间】:2018-02-12 21:16:18
【问题描述】:
嗨!
我有两张桌子,“房间”和“忙碌”。我的忙碌表包含包含到达日期和离开日期的预订记录。
我希望选择两个给定日期都没有预订的房间。
有人给了我他想要预订房间以及他打算离开的日期,我希望能够显示他可以使用的房间。
忙桌 => |IdRoom||ArrivalDate|DepartureDate|
Room Table => |IdRoom|NumRoom|等等..|
我尝试了不同的查询,但没有得到任何结果。
我测试过的查询:
SELECT Room.*, Busy.*
FROM Room
INNER JOIN Busy ON Room.RoomdId= Busy.RoomdId
WHERE (@dateArr NOT BETWEEN 'Busy.ArrivalDate' AND 'Busy.DepartureDate')
AND (@dateDep NOT BETWEEN 'Busy.ArrivalDate' AND 'Busy.DepartureDate')
提前感谢您的帮助!
【问题讨论】:
-
您已经用字符串标识符封装了列。此外,BETWEEN 具有包容性,这可能会影响您的预期结果(一旦您解决了列问题)。
-
您使用的是哪个 DBMS? mysql sql server access 在任何情况下,您都需要摆脱 where 谓词中的字符串文字。您想与表列进行比较,而不是字符串。并小心使用...sqlblog.org/2011/10/19/…
-
最好的答案将涉及数字表...根据您的 dbms,使用或生成数字表看起来非常不同。
-
哦,首先,删除
Busy.ArrivalDate和Busy.DepartureDate周围的单引号。 -
@JacobH 我执行了不带引号的查询,结果是一样的:没有结果。