复杂sql语句练习
时间:2022-03-14 作者:godlover
复杂sql语句练习
1.查询所有的课程的名称以及对应的任课老师姓名
SELECT
域名e,
域名e
FROM
teacher INNER JOIN course ON 域名 = 域名her_id
cname tname
生物 张磊老师
物理 李平老师
美术 李平老师
体育 刘海燕老师
2.查询平均成绩大于80分的同学的姓名和平均成绩
SELECT
域名e,
域名
FROM
student
INNER JOIN (
SELECT
域名ent_id,
AVG( 域名 ) AS ag
FROM
score
GROUP BY
域名ent_id
HAVING
AVG( 域名 ) > 80
) AS t1 ON 域名ent_id = 域名;
sname ag
张三 域名
刘三 域名
3.查询没有报李平老师课的学生姓名
SELECT
sname
FROM
student
WHERE
域名 NOT IN (
SELECT
student_id
FROM
score
WHERE
course_id IN ( SELECT DISTINCT cid FROM teacher INNER JOIN course ON 域名 = 域名her_id WHERE tname = \\'李平老师\\' )
);
sanme
刘三
刘一
刘二
刘四
4.查询没有同时选修物理课程和体育课程的学生姓名
SELECT
sname
FROM
student
WHERE
sid IN (
SELECT
student_id
FROM
(
( SELECT * FROM score INNER JOIN course ON cid = course_id WHERE 域名e = \\'物理\\' OR 域名e = \\'体育\\' ) AS t1
)
GROUP BY
student_id
HAVING
COUNT( student_id ) = 1
);
sname
理解
钢蛋
刘三
5.查询挂科超过两门(包括两门)的学生姓名和班级
SELECT
域名ion,
域名e
FROM
( ( SELECT * FROM class INNER JOIN student ON cid = class_id ) AS t2 )
WHERE
sname IN (
SELECT
sname
FROM
student
WHERE
sid IN ( SELECT student_id FROM score WHERE num < 60 GROUP BY student_id HAVING COUNT( student_id ) >= 2 )
);
caption sname
三年二班 理解