簡體   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