我想找周二下午12点可以容纳100人或更多的空余(即没有预订)的报告厅(他们的房间代码)。
在房间桌子上,有rCode & capacity。在roomBooking表中,有dayReq、timeReq和roomCode。
到目前为止,我的SQL查询是
SELECT rCode, capacity
FROM room
INNER JOIN roomBooking
ON room.rCode = roomBooking.roomCode
WHERE capacity >= 100;我想去掉涉及dayReq = "Tuesday“和timeReq = "12:00:00”的结果,但是我不知道这样做的正确操作符。
发布于 2014-11-11 05:39:09
为了获得您想要的东西,您将需要一个left join (或where子句中的一个子查询)。我们的想法是找到所有房间,以及房间与预订标准的任何可能的匹配。然后您需要没有匹配项的房间:
SELECT room.rCode, room.capacity
FROM room LEFT JOIN
roomBooking
ON room.rCode = roomBooking.roomCode AND
dayReq = 'Tuesday' AND timeReq = '12:00:00'
WHERE room.capacity >= 100 AND
roomBooking.roomCode IS NULL;MS Access在很多事情上都很奇怪,包括使用多个键的连接。只需使用相关子查询即可:
SELECT room.rCode, room.capacity
FROM room
WHERE NOT EXISTS (SELECT 1
FROM roomBooking
WHERE room.rCode = roomBooking.roomCode AND
dayReq = "Tuesday" AND timeReq = "12:00:00"
) AND
room.capacity >= 100;https://stackoverflow.com/questions/26853395
复制相似问题