select s.Cname,s.gpa as studentGpa ,mg.mingpa as mingpaRequired from student s
inner join apply a on s.sid=a.sid
inner join major m on m.major=a.major
inner join minimumGPA mg on mg.major=m.major
where mg.mingpa<s.gpa
Select sName from Student JOIN (The first query) As MinimumGPAApply WHERE Student.sId = MinimumGPAApply.sID AND Student.GPA > MinimumGPAApply.minGPA
所以最后你用这样的方式结束:
Select sName from Student JOIN (Select * FROM MinimumGPA NATURAL JOIN Apply) As MinimumGPAApply WHERE Student.sId = MinimumGPAApply.sID AND Student.GPA > MinimumGPAApply.minGPA
3条答案
按热度按时间gopyfrb31#
kg7wmglp2#
两个连接应该可以做到:
myss37ts3#
您使用join和natural join(这一个不是必需的,但我喜欢它),join you ufse 2 tables给出了两个需要相等的列(您在where中指定了它们),natural join做同样的事情,但是假设您有一个或多个同名的列(这些是natural join使用的列,就像它们在where中被delared一样)
所以首先你融合minimumgpa并应用(他们有两个同名的col以便自然连接)
然后,既然你在这里要求学生的名字,你就把这个新表(给它一个名字,在这个例子中我用了minimumgpaapply,如果你想的话,你可以把它命名为“dogtable”)和学生融合在一起,因为列上的名字和你用join和where指定的列不一样,你还添加了gpa条件
所以最后你用这样的方式结束: