sql中表的自我关联
sql中表的自我关联:
sql语句如下:
UPDATE arc_container
SET note = '~'
WHERE
CODE IN(
SELECT code FROM arc_container WHERE note <> '~' AND note <> '黄骅港车辆自动填充信息' AND note <> '套箱自动填充' )
会提示
这里的意思是 你不能拿出这个表中的某些值,在update此表,也就是不能用同一表中查询的数据,作为同一表中更新的数据。此时只需要在外面嵌套一层,骗过数据库让他认为你不是在查同一表的数据作为同一表的更新数据。数据库为MYSQL.
更改后的sql语句如下:
UPDATE arc_container
SET note = '~'
WHERE
CODE IN(
select c.code from(SELECT a.* FROM arc_container a WHERE a.note <> '~' AND a.note <> '黄骅港车辆自动填充信息' AND a.note <> '套箱自动填充') c )