2017-01-30 104 views
-1

我有两个表,tblRoomstblReservations。每张桌子有一个UnitIdSQL Server查询问题

tblRooms一个房间是留给特定的日期,在tblReservations创建与UnitId和预约日的记录。

如何编写SQL查询以列出tblRooms中的所有房间,该房间在tblReservations的特定日期没有预订?

回答

0

使用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 
+0

我甚至知道谁会这样做:D,但无法证明它。我做了upvote来取消你的downvote –

+0

是的,@strawberry会做到这一点,我们都知道。 –

+0

我的意思不是草莓..我在这里经常没有见过他 –

0

使用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概不退换

+1

有什么downvote的原因? –

+0

作为新来这个社区,有谁能告诉我为什么我的问题没有得到这个社区的好评? –