MySql - 删除多个表中的相同字段

时间:2018-03-04 12:22:39

标签: mysql sql web-services

我需要从stu_id相同的两个表中删除学生元素。我遵循了link

DELETE s_ezber, s_yem_tem 
FROM s_ezber 
INNER JOIN s_yem_tem 
ON s_ezber.stu_id = s_yem_tem.stu_id 
WHERE s_ezber.stu_id =1901 (s_yem_tem.stu_id )

然而,这不能正常工作。这里的问题是两个表都需要包含相同的学生ID,如果没有,则失败。 我想要做的是删除行中的一行或两个表。如何只用一个查询来处理它?<​​/ p>

1 个答案:

答案 0 :(得分:4)

delete s_ezber, s_yem_tem
from (select 1901 as stu_id) sub
left join s_ezber using(stu_id)
left join s_yem_tem using(stu_id);

演示:http://rextester.com/ESX91655

这应该与事务中的两个查询具有相同的效果:

start transaction;
delete s_ezber   where stu_id = 1901;
delete s_yem_tem where stu_id = 1901;
commit;