我不明白为什么这不起作用我一直试图解决这个问题。我试图从GPA小于0.5的注册表和学生表中删除学生。
DELETE e, s FROM Enrollemnt e JOIN Student s ON s.StudentID = e.StudentID
WHERE s.GPA < 0.5
AND s.StudentID = e.StudentID;
答案 0 :(得分:1)
谓词s.StudentID = e.StudentID
在WHERE
子句中是多余的;同一谓词已在ON
子句中表达。 (我认为优化器可以接受;对于人类读者来说有点混乱,为什么会表达两次。)
除了那种奇怪之外,声明应该&#34;工作&#34;。一个可能的问题是外键限制;从表中删除行的顺序可能会导致违反外键约束。
我怀疑问题是Enrollment
表的拼写,看起来表名拼写错误,错误将是&#34;未知表&#34;。
答案 1 :(得分:0)
这是我想出的答案......
DELETE Enrollment, Student FROM Enrollment INNER JOIN Student
WHERE Enrollment.StudentID=Student.StudentID
AND Student.GPA < 0.5;