java吧 关注:1,255,247贴子:12,743,918
  • 6回复贴,共1

sql语句问题

只看楼主收藏回复

表如下
Student(id,Sname,Sage,Ssex) 学生表
Course(cid,Cname,Tid) 课程表
SC(id,cid,score) 成绩表
Teacher(Tid,Tname) 教师表


IP属地:山东1楼2019-02-16 13:57回复
    1、 查询学过“叶平”老师所教的所有课的同学的学号、姓名;
    select id,Sname
    from Student
    where id in (select id from SC ,Course ,Teacher where SC.cid=Course.cid and Teacher.Tid=Course.Tid and Teacher.Tname='叶平' group by id having count(SC.cid)=(select count(cid) from Course,Teacher where Teacher.Tid=Course.Tid and Tname='叶平'));


    IP属地:山东2楼2019-02-16 13:57
    回复
      从group by 开始的这些语句有什么用啊 不写结果一样啊


      IP属地:山东3楼2019-02-16 13:58
      收起回复
        大佬今天都加班啊


        IP属地:山东4楼2019-02-16 14:12
        回复
          你可以用我的这个SQL去实现你这个需求
          SELECT s1.id,s1.Sname
          FROM Student s1 LEFT JOIN SC sc ON s1.id = sc.id
          LEFT JOIN Course c ON sc.cid = c.cid
          LEFT JOIN Teacher t ON c.Cname = t.Tname AND t.Tname = '叶平';


          IP属地:浙江5楼2019-02-16 14:26
          回复