我有两个表,tblRooms
和tblReservations
。每张桌子有一个UnitId
。SQL Server查询问题
当tblRooms
一个房间是留给特定的日期,在tblReservations
创建与UnitId
和预约日的记录。
如何编写SQL查询以列出tblRooms
中的所有房间,该房间在tblReservations
的特定日期没有预订?
我有两个表,tblRooms
和tblReservations
。每张桌子有一个UnitId
。SQL Server查询问题
当tblRooms
一个房间是留给特定的日期,在tblReservations
创建与UnitId
和预约日的记录。
如何编写SQL查询以列出tblRooms
中的所有房间,该房间在tblReservations
的特定日期没有预订?
使用LEFT JOIN
:
SELECT t1.*
FROM tblRooms t1
LEFT JOIN tblReservations t2
ON t1.UnitId = t2.UnitId AND
t2.reservation_date = '2017-01-30'
WHERE t2.UnitId IS NULL
使用NOT EXISTS
SELECT *
FROM tblRooms t
WHERE NOT EXISTS (SELECT 1
FROM tblReservations tr
WHERE t.UnitId = tr.UnitId
AND reservation_date = '2017-01-30') -- pass specific date here
哪里有一个UnitId
子查询内部的匹配,则特别UnitId
概不退换
有什么downvote的原因? –
作为新来这个社区,有谁能告诉我为什么我的问题没有得到这个社区的好评? –
我甚至知道谁会这样做:D,但无法证明它。我做了upvote来取消你的downvote –
是的,@strawberry会做到这一点,我们都知道。 –
我的意思不是草莓..我在这里经常没有见过他 –