Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL更新语句_Sql_Ms Access_Where_Clause - Fatal编程技术网

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;