SQL Server查询问题

时间:2017-01-30 04:04:13

标签: sql-server

我有两个表,tblRoomstblReservations。每个表都有一个UnitId

tblRooms中的某个会议室为特定日期保留时,会在tblReservations中使用UnitId和预订日期创建记录。

如何编写SQL查询以列出tblRoomstblReservations中某个特定日期没有预订的{{1}}中的所有会议室?

2 个答案:

答案 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