[英]How to combine UPDATE query with subquery?
在我的Mysql数据库中,我想为使用以下select语句找到的所有记录更新字段fup
:
SELECT ic.hash
FROM incompany as ic, app
WHERE ic.id = app.ic_id;
因此,我创建了以下组合查询:
UPDATE incompany
SET fup = 'x'
WHERE hash IN (SELECT ic.hash
FROM incompany as ic, app
WHERE ic.id = app.ic_id);
但是此查询给我以下错误:
您无法在FROM子句中指定目标表“ incompany”进行更新
有人知道我该怎么做吗? 欢迎所有提示!
您似乎想要两列的条件,因此这有点棘手。 如果我正确遵循逻辑:
UPDATE incompany ic JOIN
(SELECT DISTINCT ic.hash
FROM incompany ic JOIN
app
ON ic.id = app.ic_id
) ica
ON ica.hash = ic.hash
SET fup = 'x' ;
您不需要子查询。 您可以使用INNER JOIN
设置条件,以将incompany
表链接到app
表以及incompany
表的另一个别名。
UPDATE incompany I
INNER JOIN app A ON I.id = A.ic_id
INNER JOIN incompany I2 ON I.hash = I2.hash
SET I.fup = 'x'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.