sql高难度笔试题,4个表,一条查询语句

今天笔试最后 一道sql问题

班级表A:字段(班级名称、班级)
学生表B:字段(学号、姓名)
课程表C:字段(课程号、课程名)
选课表D:字段(学号、课程号、成绩)
问题:用一条查询语句查询 "一班"比"二班"法语平均成绩高的学生信息

3个回答

学生表B 少了"班级"栏位

SELECT b.*
FROM A
INNER JOIN B ON A.班级 = B.班级
INNER JOIN D ON D.学号 = B.学号
INNER JOIN ( SELECT D.课程号 ,
AVG(D.成绩) AS 成绩
FROM A
INNER JOIN B ON A.班级 = B.班级
INNER JOIN D ON D.学号 = B.学号
INNER JOIN C ON C.课程号 = D.课程号
WHERE A.班级名称 = '二班'
AND C.课程名 = '法语'
) AS C ON C.课程号 = D.课程号 AND c.成绩<d.成绩
WHERE A.班级名称 = '二'
;

;

班级跟学生是怎么关联的 没体现粗来啊

SELECT a.班级名称,b.姓名,c.课程名,d.成绩
FROM 班级表A a,学生表B b,课程表C c,选课表D d
WHERE a.班级=b.班级
AND b.学号=d.学号
AND c.课程号=d.课程号
AND a.班级名称='-班'
AND c.课程名='法语'
AND d.成绩>=(
SELECT SUM(g.成绩)/COUNT(1) FROM 学生表B e, 选课表D g
WHERE c.课程号=g.课程号
AND e.学号=g.学号
AND e.班级<>b.班级---非1即2.
)

确实B表少了个班级字段

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问