SQL更新语句
我有两张桌子-客房和客房预订,包括:SQL更新语句,sql,ms-access,where,clause,Sql,Ms Access,Where,Clause,我有两张桌子-客房和客房预订,包括: room rCode | rName | building | capacity | disabledAccess Text | Text | Text | Number | Yes/No roomBooking bookingID | roomCode | moduleCode | dayReq | timeReq | s
room
rCode | rName | building | capacity | disabledAccess
Text | Text | Text | Number | Yes/No
roomBooking
bookingID | roomCode | moduleCode | dayReq | timeReq | semester | classSize
Number | Text | Text | Text | Day/Time| Number | Number
我想写一个UPDATE语句来更新任何时候都没有预订的房间-结果显示在下面的SELECT查询中
SELECT rCode, disabledAccess
FROM room
LEFT JOIN roomBooking
ON room.rCode = roomBooking.roomCode
WHERE roombooking.roomCode IS NULL;
如何将其更改为UPDATE语句?使用左连接并仅返回不符合连接条件的房间
SELECT rCode, disabledAccess
FROM room
LEFT JOIN roomBooking
ON room.rCode = roomBooking.roomCode
WHERE roomBooking.roomCode is NULL
您应该使用左连接并测试NULL来显示不匹配的行
SELECT rCode, disabledAccess
FROM room
LEFT JOIN roomBooking
ON room.Code = roomBooking.roomCode
WHERE roombooking.roomCode IS NULL
您可以沿着这条路径走,但需要一个
左连接
,然后进行比较以确定哪些行不匹配。在这种情况下,不需要exists
子句:
SELECT r.rCode, r.disabledAccess
FROM room as r LEFT JOIN
roomBooking as rb
ON r.rCode = rb.roomCode
WHERE rb.roomCode IS NULL;
编辑:
MS Access接受更新的连接语法:
UPDATE room
SET <foo> = <bar>
FROM room LEFT JOIN
roomBooking
ON room.rCode = roomBooking.roomCode
WHERE roomBooking.roomCode IS NULL;
更新室
集合=
从房间左侧连接
客房预订
ON room.rCode=roomBooking.roomCode
其中roomBooking.roomCode为空;
您是否不清楚要更新哪些列。使用左连接
并检查右侧(roomBooking
)是否为空
我想将disabledAccess更新为yes(设置disabledAccess=1),但当我运行此操作时,我收到一条语法错误消息,该SQL对我有效:)更新room LEFT加入roomBooking ON room.rCode=roomBooking.roomCode SET disabledAccess=1,其中roomBooking.roomCode为NULL;