簡體   English   中英

使用 where IN 子句從多個表中刪除記錄

[英]Delete records From Multiple Table using where IN clause

我想根據使用 WHERE IN 來自 plan_temp 表的計划 ID 從 2 個表中刪除數據。如果你們幫助我,我將不勝感激

這是我的代碼,現在我想讓它成為一個單一的查詢

DELETE FROM plan WHERE id_plan IN(SELECT id_plan FROM plan_temp WHERE no=1184);


DELETE FROM plan_temp WHERE id_plan IN(SELECT id_plan FROM plan_temp WHERE no=1184);

使用 INNER JOIN 查找兩個表中的行

DELETE t1,t2 FROM plan t1
        INNER JOIN
    plan_temp t2 ON t2.id_plan = t1.id_plan 
WHERE
    t1.id_plan IN (SELECT id_plan FROM (SELECT * FROM plan_temp) t3 WHERE no=1184);

請在帶有備份的測試環境中測試所有查詢,看看這是否真的是您想要的

不幸的是,您不能刪除兩個單獨的表。

DELETE FROM plan WHERE id_plan = 1184

DELETE FROM plan_temp WHERE id_plan = 1184

但是,您可以使用內部聯接從兩個表中刪除兩個值。 所以,它必須是這樣;

DELETE  plan, plan_temp FROM plan INNER JOIN plan_temp
Where
plan.id_plan = plan_temp.id_plan and id_plan = 1184;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM