[英]Delete records From Multiple Table using where IN clause
I want to delete data from 2 tables based on plan id which comes from the plan_temp table using WHERE IN .. I would be very grateful if you guys help me我想根据使用 WHERE IN 来自 plan_temp 表的计划 ID 从 2 个表中删除数据。如果你们帮助我,我将不胜感激
this is my code now I want to make this a single query这是我的代码,现在我想让它成为一个单一的查询
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);
Use an INNER JOIN to find the rows in both tables使用 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);
Please test all queries in a test environment with backup, to see if this is really what you want请在带有备份的测试环境中测试所有查询,看看这是否真的是您想要的
Unfortunately, you can't delete two separated tables.不幸的是,您不能删除两个单独的表。
DELETE FROM plan WHERE id_plan = 1184
DELETE FROM plan_temp WHERE id_plan = 1184
But, you can use Inner Join to delete both values from two tables.但是,您可以使用内部联接从两个表中删除两个值。 So, it has to be like that;所以,它必须是这样;
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.