提问者:小点点

SQL查询查找只修了4学分课程的学生姓名


有三张桌子

Students (sid:integer, sname:string, age:integer) 
Courses (cid:integer, cname:integer, credits:integer) 
Grades(sid:integer, cid:integer, grade:string) 

我想让只修4学分课程的学生

我试过了

SELECT sname FROM Students JOIN Grades ON Student.sid = Grades.sid
                           JOIN Grades ON Course.cid = Grades.cid
WHERE credits = 4

共1个答案

匿名用户

您可以联接表,group bystudent,并在having子句中设置条件:

SELECT s.sid, s.sname 
FROM Students s 
INNER JOIN Grades g ON g.sid = s.sid
INNER JOIN Courses c ON c.cid = g.cid
GROUP BY s.sid, s.sname
HAVING SUM(c.credits <> 4) = 0