Mysql 如何删除涉及多个表的单个表中的行

Mysql 如何删除涉及多个表的单个表中的行,mysql,Mysql,嗨,我刚刚接触sql,删除记录时遇到了困难。我需要从SubjectCode表中删除所有记录,其中教师是“MARSHALL”。我使用了此查询,但不起作用: delete from subjcode where ( select sa.sno from subjcode sa, teacher, course where teacher.tname = 'MARSHALL' and

嗨,我刚刚接触sql,删除记录时遇到了困难。我需要从SubjectCode表中删除所有记录,其中教师是“MARSHALL”。我使用了此查询,但不起作用:

delete
from subjcode
where (
        select sa.sno
        from subjcode sa,
            teacher,
            course
        where teacher.tname = 'MARSHALL'
            and teacher.tno = course.tno
            and course.cno = sa.cno
        ) = subjcode.sno;
还有表格及其列:

subjcode: sno,cno,score

course: cno,tno,cname

teacher:tno,tname
我知道我只需要tname、tno和cno,但我不知道正确的查询。请帮我谢谢

试试这个:

delete s 
from subjcode s 
join course c on s.cno = c.cno 
join teacher t on c.tno = t.tno
where t.tname = 'MARSHALL'; 
试试这个:

delete s 
from subjcode s 
join course c on s.cno = c.cno 
join teacher t on c.tno = t.tno
where t.tname = 'MARSHALL'; 

您可以使用“加入”删除:

delete s
from subjcode s
join course c on s.cno = c.cno
join teacher t on t.tno = c.tno
where t.tname = 'MARSHALL';
请参见以下参考:


您可以使用连接删除:

delete s
from subjcode s
join course c on s.cno = c.cno
join teacher t on t.tno = c.tno
where t.tname = 'MARSHALL';
请参见以下参考:


掌声推荐,但除此之外,你的答案与我的答案完全相同:-)@GiorgosAltanis-是的。直到我发布了我的答案,我才看到你的答案。为参考鼓掌,但除此之外,你的答案与我的完全相同:-)@GiorgosAltanis-是的。直到我把我的答案贴出来,我才看到你的答案。