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

解决方案 »

  1.   

    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;
      

  2.   

    成绩Result大于60分的应该不止一个吧  然后对应的也不止一个班主任咯?select StudentID,Result
    from Score
    where StudentID in 
                    (select ManagerID from Teach t1 where t1.StudentID in 
                                 (select StudentID from Score where Result<60)
                    )
      

  3.   

    如果要求班主任的分数也大于等于60,可以这样写:
    select a.*,b.managerid from score a left join teach b on a.studentid=b.sutdentid where a.results>=60
      

  4.   


    select a.StudentID a.Result from Score a,
    (select q.ManagerID from Teach q, Score t where q.StudentID = t.StudentID and Result > 60) b
    where a.StudentID = b.ManagerID
      

  5.   

    SELECT s.STU_ID, s.STU_RESULT, t.MANAGER_ID,s2.stu_result
      FROM SCORE s
           INNER JOIN teach t
                  ON S.stu_id = t.stu_id
           INNER JOIN score s2
                   ON t.manager_ID = s2.stu_id(之所以内连接 是 因为 一个学生只有一个老师!)
      

  6.   

    还有个条件,不好意思,应该是这样:SELECT s.STU_ID, s.STU_RESULT, t.MANAGER_ID,s2.stu_result
      FROM SCORE s
      INNER JOIN teach t
      ON S.stu_id = t.stu_id
      INNER JOIN score s2
      ON t.manager_ID = s2.stu_id
    where s.stu_result > 60;