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

多对多关系的SQL查询?求解
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
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
解决 无用评论 打赏 举报