题目:查询每个学生选修课程超过他所选修所有课程平均成绩的课程,最后显示的字段为学号、课程号、课程名
SELECT SC.Sno, SC.CNo, C.CN FROM
SC JOIN C ON SC.CNo=C.CNo
JOIN S ON S.Sno=SC.Sno
LEFT JOIN(
SELECT Sno,avg(Score) FROM SC
WHERE (SELECT Score FROM SC) > (SELECT avg(Score) FROM SC GROUP BY Sno)
) AS C ON C.Sno=SC.Sno;
报错:Subquery returns more than 1 row
SC表
mysql> SELECT * FROM SC; | ||
---|---|---|
Sno | CNo | Score |
S1 | C1 | 90.00 |
S1 | C2 | 85.00 |
S2 | C4 | 70.00 |
S2 | C5 | 57.00 |
S2 | C6 | 80.00 |
S2 | C7 | NULL |
S3 | C1 | 75.00 |
S3 | C2 | 70.00 |
S3 | C4 | 85.00 |
S4 | C1 | 93.00 |
S4 | C2 | 85.00 |
S4 | C3 | 83.00 |
S5 | C2 | 89.00 |
C表
mysql> select * from c; | ||
---|---|---|
CNo | CN | CT |
C1 | 程序设计 | 60 |
C2 | 微机原理 | 80 |
C3 | 数字逻辑 | 60 |
C4 | 数据结构 | 80 |
C5 | 数据库原理 | 60 |
C6 | 编译原理 | 54 |
C7 | 操作系统 | 60 |
S表
mysql> SELECT * FROM S; | |||||
---|---|---|---|---|---|
Sno | Sn | Sex | Age | Birthdary | Dept |
S1 | 赵亦 | 女 | 17 | 1986-09-13 | 计算机 |
S2 | 钱尔 | 男 | 18 | 1984-02-23 | 信息 |
S3 | 孙珊 | 女 | 20 | 1984-01-27 | 信息 |
S4 | 李思 | 男 | 21 | 1986-09-10 | 自动化 |
S5 | 周武 | 男 | 19 | 1984-02-20 | 计算机 |
S6 | 吴丽 | 女 | 20 | 1984-03-20 | 自动化 |