日期:2014-05-17  浏览次数:20796 次

oracle 数据库查询
请教大家一个问题,假如有一个成绩表Score,首先要根据成绩Result大于60分的,找到学生StudentID,再根据找到的学生ID,去师生表Teach里面,找到该学生的班主任ID(假设一个学生只有一个老师)ManagerID,假设班主任同时也是一名学生,要查找班主任的成绩。
请问这样的问题,应该怎么写查询语句呢?


------解决方案--------------------
SQL code
select Score.StudentID, Score.Result 
from 
  (select StudentID from Score where Result > 60) StuAbove60,
  Teach, Score
where StuAbove60.StudentID = Teach.StudentID 
  and Score.StudentID = Teach.ManagerID;

------解决方案--------------------
成绩Result大于60分的应该不止一个吧 然后对应的也不止一个班主任咯?
SQL code

select StudentID,Result
from Score
where StudentID in 
                (select ManagerID from Teach t1 where t1.StudentID in 
                             (select StudentID from Score where Result<60)
                )