我有二张表
表1:老师表  字段 TeacherID Name(班主任姓名)  
                 01       李老师 
                 02       阳老师 
                 03       黄老师
表2:Student(学生表) 字段  StudentID  Name    TeacherID  Course(选课)
                            0101     张三       01        计算机
                            0102     李四       01        计算机
                            0201     五王       02         体育
                            0202     黄明       02        计算机我现在的要求就是:
SQL语句查询:返回既有参加计算机的学生选课又有参加体育选课的学生的班主任姓名

解决方案 »

  1.   

    select Name from 老师表,学生表 where 老师表.TeacherID = 学生表.TeacherID
      

  2.   

    select a.name  from teacher a,student b
    where a.teacherid=b.teacherid and b.course='计算机' and b.course='体育' 
      

  3.   

    试试
    :select * from 老师表 where teacherid in(select teacherid from student where course in('计算机','体育'))
      

  4.   

       declare @TeacherTalbe Table( TeacherID  varchar(20) , [Name] varchar(20))
       declare @StudentTalbe Table( StudentID    varchar(20) , [Name] varchar(20),TeacherID varchar(20),Course varchar(20))
       
       insert into @TeacherTalbe values( '01','李老师') 
    insert into @TeacherTalbe values( '02','阳老师') 
    insert into @TeacherTalbe values( '03','黄老师')
       insert into @StudentTalbe values( '0101' ,'张三' ,'01','计算机')
    insert into @StudentTalbe values( '0102' ,'李四' ,'01','计算机')
    insert into @StudentTalbe values( '0201' ,'五王' ,'02','体育')
    insert into @StudentTalbe values( '0202' ,'黄明' ,'02','计算机')
       select [Name] from @TeacherTalbe where TeacherID in(
    select TeacherID from @StudentTalbe 
    where Course = '计算机' or Course ='体育' 
    group by TeacherID 
    having Count( distinct Course) =2 )