2017-01-30 144 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

作爲新來這個社區,有誰能告訴我爲什麼我的問題沒有得到這個社區的好評? –