我有兩個表,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會做到這一點,我們都知道。 –
我的意思不是草莓..我在這裏經常沒有見過他 –