我必须从几个表中删除。这些表是费用、结果、休假和消息。它们都有一个名为 Student_id 的字段。我想从所有这些表中删除student_id值为3的行。但是我收到语法错误。
我做错了什么?这是我的查询
delete from fees join results on fees.student_id = results.student_id join messages on results.student_id = messages.student_id join leaves on messages.student_id = leaves.student_id where fees.student_id = '3';
最佳答案
为什么不只删除四次呢?
delete from fees where student_id = 3;
delete from results where student_id = 3;
delete from leaves where student_id = 3;
delete from messages where student_id = 3;
您可以在一个查询中执行此操作,如下所示:
delete f, r, l, m
from fees f join
results r
on f.student_id = r.student_id join
messages m
on r.student_id = m.student_id join
leaves l
on m.student_id = l.student_id
where f.student_id = '3';
但这存在风险,其中一个表将没有学生的记录。如果 join
没有匹配项,则不会删除任何内容。
关于mysql - 当我尝试通过连接从多个表中删除时出现 SQL 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25819006/