题1:查询" 01 "课程比" 02 "课程成绩高的学生的信息及课程分数

题目查询" 01 “课程比” 02 "课程成绩高的学生的信息及课程分数查询同时存在" 01 “课程和” 02 "课程的情况查询存在" 01 “课程但可能不存在” 02 "课程的情况(不存在时显示为 null )查询不存在" 01 “课程但存在” 02 "课程的情况解释...
摘要由CSDN通过智能技术生成

题1

  1. 查询" 01 “课程比” 02 "课程成绩高的学生的信息及课程分数
  2. 查询同时存在" 01 “课程和” 02 "课程的情况
  3. 查询存在" 01 “课程但可能不存在” 02 "课程的情况(不存在时显示为 null )
  4. 查询不存在" 01 “课程但存在” 02 "课程的情况

解释

题1.1:查询" 01 “课程比” 02 "课程成绩高的学生的信息及课程分数

首先明确我们需要查询的表是成绩表(SC)的信息。

最简单的查询是课程01和课程02的信息有哪些,例如查询课程01

mysql> SELECT * FROM  SC WHERE SC.CId="01";
+------+------+-------+
| SId  | CId  | score |
+------+------+-------+
| 01   | 01   |  80.0 |
| 02   | 01   |  70.0 |
| 03   | 01   |  80.0 |
| 04   | 01   |  50.0 |
| 05   | 01   |  76.0 |
| 06   | 01   |  31.0 |
+------+------+-------+
6 rows in set (0.01 sec)

其实就是通过SC表得到2张子表,笛卡儿积的方法合并两张表,然后通过WHERE条件进行筛选

mysql> SELECT *  FROM (SELECT * FROM  SC WHERE SC.CId="01") AS biao01,(SELECT * FROM  SC WHERE SC.CId="02") AS biao02  WHERE biao01.score > biao02.score AND biao01.SId = biao02.SId;
+------+------+-------+------+------+-------+
| SId  | CId  | score | SId  | CId  | score |
+------+------+-------+------+------+-------+
| 02   | 01   |  70.0 | 02   | 02   |  60.0 |
| 04   | 01   |  50.0 | 04   
  • 9
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值