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` ;

这篇博客详细解析了如何使用SQL查询那些在'01'课程中成绩高于'02'课程的学生信息及其具体分数,涉及到了多表关联查询和条件筛选,是数据库操作的经典案例。
664

被折叠的 条评论
为什么被折叠?



