我有两个表,tblRooms
和tblReservations
。每个表都有一个UnitId
。
当tblRooms
中的某个会议室为特定日期保留时,会在tblReservations
中使用UnitId
和预订日期创建记录。
如何编写SQL查询以列出tblRooms
中tblReservations
中某个特定日期没有预订的{{1}}中的所有会议室?
答案 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 :(得分: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