下面的查询是否算为一个MySQL update语句,在该语句中,我将表B与表A连接在状态和id上?还是我必须指定“左外接B on"?
这是正确的吗?
UPDATE A
SET A.CITY = B.CITY
FROM B WHERE A.STATE = B.STATE
AND A.ID = B.ID;还是一定要这样?
UPDATE A
SET A.CITY = B.CITY
FROM A LEFT OUTER JOIN B ON A.STATE = B.STATE
AND A.ID = B.ID;发布于 2022-07-12 01:20:01
MySQL确实支持多表更新语法。这不是标准的ANSI/ISO,但是MySQL实现它作为标准的扩展(供应商经常这样做)。
但是您显示的语法与MySQL支持的语法不匹配。请阅读以下参考文档以查看语法:
下面是一个内部联接,它只在A中有匹配行时更新B中的行。
UPDATE A JOIN B
SET A.CITY = B.CITY
WHERE A.STATE = B.STATE AND A.ID = B.ID;您还可以这样编写相同的内部联接:
UPDATE A JOIN B
ON A.STATE = B.STATE AND A.ID = B.ID
SET A.CITY = B.CITY;下面是一个左外部联接,它将更新A中的所有行,即使B中没有匹配的行。在这些情况下,它将设置A.CITY = NULL。
UPDATE A LEFT OUTER JOIN B
ON A.STATE = B.STATE AND A.ID = B.ID;
SET A.CITY = B.CITY;https://stackoverflow.com/questions/72945696
复制相似问题