【问题标题】:how to delete rows in a single table involving multiple table如何删除涉及多个表的单个表中的行
【发布时间】:2017-03-28 14:39:17
【问题描述】:

嗨,我刚接触 sql,我很难删除记录。我需要从教师为“MARSHALL”的 subjcode 表中删除所有记录。我使用了这个查询,但我不工作:

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,但我不知道正确的查询。请帮帮我谢谢

【问题讨论】:

    标签: mysql


    【解决方案1】:

    您可以使用 join 删除:

    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 - 是的。直到我发布我的答案,我才看到你的答案。
    【解决方案2】:

    试试这个:

    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'; 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-21
      • 1970-01-01
      • 1970-01-01
      • 2015-09-25
      • 2023-03-28
      • 1970-01-01
      • 2022-11-22
      相关资源
      最近更新 更多