1.查询" 01 “课程比” 02 "课程成绩高的学生的信息及课程分数
分析关键词:学生信息
,课程编号
,课程分数
第一步: 锁定要查询的表为学生表
、成绩表
,这两张表包含了题目所要查询的所有信息。
第二步: 将两张表进行关联查询
SELECT * FROM Student st INNER JOIN sc a ON st.`SId` = a.SId;
第三步: 利用第二步的结果继续和成绩表关联查询,关联字段仍然是SId,但注意要筛选一下课程,我们让左边的表只保留01课程,右边的表只保留02课程
SELECT
*
FROM
Student st
INNER JOIN sc a
ON st.`SId` = a.sid
INNER JOIN sc b
ON a.`SId` = b.`SId`
AND a.`CId` = '01'
AND b.`CId` = '02' ;
第四步: 用where条件比较分数
SELECT
*
FROM
Student st
INNER JOIN sc a
ON st.`SId` = a.sid
INNER JOIN sc b
ON a.`SId` = b.`SId`
AND a.`CId` = '01'
AND b.`CId` = '02'
WHERE a.`score` > b.`score` ;
第五步: 选出最终需要的字段
SELECT
st.*,
a.`CId`,
a.`score`,
b.`CId`,
b.`score`
FROM
Student st
INNER JOIN sc a
ON st.`SId` = a.sid
INNER JOIN sc b
ON a.`SId` = b.`SId`
AND a.`CId` = '01'
AND b.`CId` = '02'
WHERE a.`score` > b.`score` ;