练习1:关联查询、自关联查询

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

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值