ZzzCrazyPig 2014-01-21 13:34 采纳率: 0%
浏览 1040

多对多关系的SQL查询?求解

项目中涉及多对多关系的查询,想不出能怎么写SQL语句:
描述如下:根据web页面给定的课程(有一到多个)查询选修了这些给定课程的学生的姓名
关系表S(学生),C(课程),SC(学生-课程)
S:(sid,sname)
C:(cid,cname)
SC:(sid,cid)

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-01 17:41
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    可以使用LEFT JOIN或者INNER JOIN的方式实现。

    SELECT s.sname FROM S INNER JOIN SC ON S.sid = SC.sid WHERE SC.cid IN (SELECT cid FROM C WHERE cname = '课程名称')
    

    如果你想要按照student_name来排序,那么可以在JOIN之前加一个ORDER BY student_name。

    SELECT s.sname FROM S INNER JOIN SC ON S.sid = SC.sid 
    WHERE SC.cid IN (SELECT cid FROM C WHERE cname = '课程名称') ORDER BY s.sname ASC
    
    评论

报告相同问题?