mysql中You can't specify target table for update in FROM clause錯誤

我config表其中有個字段叫instrument,是instrument表的外鍵。
現(xiàn)在 config表中有臟數(shù)據(jù),也就是說 config表中有一系列數(shù)據(jù) 但是 通過config.instrument 在instrument表中查不到相關數(shù)據(jù),所以需要刪除這些多余的數(shù)據(jù)
我先寫了這個sql語句

delete from config where uid in
   (select c.uid from config as c where c.instrument not in 
      (select uid from instrument))

但是出錯了


image.png

經(jīng)過查詢結果后得知,不能先select出同一表中的某些值,再update這個表(在同一語句中)
所以需要再嵌套一次查詢

delete from config where uid in
    (select a.uid from 
        (select * from config as c where c.instrument not in 
            (select uid from instrument)) as a)

sql正常運行
注意的是,參考文檔說 這個問題只出現(xiàn)于mysql,mssql和oracle不會出現(xiàn)此問題。
ref>http://blog.csdn.net/priestmoon/article/details/8016121

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容