繁体   English   中英

如何结合UPDATE查询和子查询?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM