Mysql的sql語句,Delete 中包含 not in 同一個表處理方法


 mysql delete not in

想要執行:

DELETE FROM tb_tableA WHERE id IN (
        SELECT a.id FROM tb_tableA a WHERE a.id NOT IN ( 
                SELECT a_id FROM tb_tableB 
        ) 
);

是無法正確執行的。

解決方案:創建臨時表,作為中間表;用完再刪去。

 
CREATE TABLE tmp AS SELECT t.id FROM (
        SELECT a.id FROM tb_tableA a WHERE a.id NOT IN ( 
                SELECT a_id FROM tb_tableB 
        ) 
) t;
DELETE FROM tb_tableA WHERE id IN (SELECT id FROM tmp); 
DROP TABLE tmp;

【說明】:tb_tableB 中 字段 a_id 是 tb_tableA 的主鍵 id .
 

 

成功!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM