SQL 训练题目

一. 查询 "01" 课程比 "02" 课程成绩高的学生的信息及课程分数

解题思路:要查询的是两个课程的成绩,而且还要显示学生的信息。所以需要用到两张表,SC,Student 这两张表。
问题拆分:

  1. 怎么查找两个课程的成绩呢?
  2. 如何把课程表和学员信息表连接起来呢?

那么用到哪些知识呢?

  1. 子查询
  2. join

语句实现:先找到两门课的成绩

-- 课程1的成绩
SELECT
	sid,
	score AS class1 
FROM
	sc 
WHERE
	sc.cid = '01';
-- 课程2的成绩
SELECT
	sid,
	score AS class2 
FROM
	sc 
WHERE
	sc.cid = '02';

img

两个子查询结束了以后,下一步就是使用 join 把这两个查询的结果连接起来:

SELECT
	* 
FROM
	Student
	RIGHT JOIN (
	SELECT
		t1.sid,
		class1,
		class2 
	FROM
		( SELECT sid, score AS class1 FROM sc WHERE sc.cid = '01' ) t1,
		( SELECT sid, score AS class2 FROM sc WHERE sc.cid = '02' ) t2 
	WHERE
		t1.sid = t2.sid 
	AND t1.class1 > t2.class2 
	) r ON Student.sid = r.sid;

img

二. 查询存在 "01" 课程但可能不存在 "02" 课程的情况(不存在时显示为 null)

思路:首先要查询所有的学生的选课情况,然后找到选择课程 01 和选择课程 02 的学生
解决方法:使用 join
选择两个分别选择课程 01 和课程 02 的学员表,然后把这两个表 join 起来

SELECT
	* 
FROM
	( SELECT * FROM sc WHERE sc.cid = '01' ) t1
	LEFT JOIN ( SELECT * FROM sc WHERE sc.cid = '02' ) t2 ON t1.sid = t2.sid;

img

三. 查询同时存在 01 和 02 课程的情况

思路:要求同时选择了 01 和 02 课程的情况,则需要使用 where 链接起来,这一题和上一题相比就是多了一个去除选了 01 但是没有选择 02 课程的这一部分
知识点:子查询,where语句

SELECT
	* 
FROM
	( SELECT * FROM sc WHERE sc.cid = '01' ) t1,
	( SELECT * FROM sc WHERE sc.cid = '02' ) t2 
WHERE
	t1.sid = t2.sid;

img

posted @   BNTang  阅读(25)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
  1. 1 总会有人离开 王巨星
  2. 2 月亮 孟凡明
  3. 3 迟里乌布
  4. 4 我只能离开 颜人中
  5. 5 达尔文 蔡健雅
  6. 6 夜色滚烫 叶明净
  7. 7 你的星环 路飞文
  8. 8 不再说话 三块木头
  9. 9 黄昏 粥粥和小伙/粥粥
  10. 10 爱不单行 刘大拿
  11. 11 心动贩卖机 PIggy
  12. 12 别来无恙 苏星婕
  13. 13 我们的歌 刘大拿
  14. 14 一直很安静 王贰浪
  15. 15 去有风的地方 清音
  16. 16 雪 Distance Capper/罗言
  17. 17 坏女孩 徐良/小凌
  18. 18 乐园 沧桑Cang333/虎皮蛋/曲甲
  19. 19 Ayo(Explicit) Chris Brown/Tyga
  20. 20 我的美丽feat.海洋Bo 海洋Bo/高睿
  21. 21 世事可爱 粥粥和小伙/粥粥
  22. 22 我记得 赵雷
  23. 23 我想牵着你的手 许嵩
  24. 24 人们都不懂 刘诺然
  25. 25 寻一个你(电视剧《苍兰诀》温情主题曲) TTTTTeehom
  26. 26 子莫格尼 杉和
  27. 27 Cat Cafe Shoffy
  28. 28 风停了雨停了我们还拥抱着 Superluckyqi
  29. 29 寂寞沙洲冷 于潼
  30. 30 三国恋 王巨星
  31. 31 达尔文 林俊杰
  32. 32 有些 颜人中
  33. 33 小模样 张小只ya
  34. 34 是否 程响
  35. 35 楼顶上的小斑鸠 队长
  36. 36 笑场 薛之谦
  37. 37 还是分开 张叶蕾
  38. 38 修炼爱情 林俊杰
  39. 39 二零三 毛不易
  40. 40 雅俗共赏 许嵩
  41. 41 Serendipity 古瑞斯Graps/Zakiya晴子
  42. 42 就让这大雨全都落下·2023 刘大拿
  43. 43 老男孩 筷子兄弟
  44. 44 有何不可 许嵩
  45. 45 缓缓 杜宣达
  46. 46 好久不见 陈奕迅
  47. 47 爱的魔法(Cover 金莎) 封茗囧菌
  48. 48 在你的身边 盛哲
  49. 49 带我去找夜生活 告五人
  50. 50 假面舞会 很美味
  51. 51 STAY The Kid LAROI/Justin Bieber
  52. 52 我好想睡觉的 无敌西红柿
  53. 53 日不落(温柔版)
  54. 54 恋爱画板 锦零
  55. 55 7710 好乐无荒/尹露浠
  56. 56 给你呀(又名:for ya) 蒋小呢
  57. 57 Love Story Taylor Swift
  58. 58 Plain Jane(Remix 13z) 鱼幼微
  59. 59 晚风 7opy/BT07
  60. 60 拜托 孙晨
  61. 61 乌梅子酱 李荣浩
  62. 62 南半球与北海道 范倪Liu
  63. 63 星河万里 Rom邢锐
我的美丽feat.海洋Bo - 海洋Bo/高睿
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

作词 : 李蘑菇

作曲 : 李蘑菇/秦四风

编曲 : 曾吴秋杰

出品:网易飓风

午后温暖的阳光温柔闪耀

雨后绚烂的彩虹五彩斑斓

炎热的夏日 一丝凉⻛ 掠过耳边

一道美丽的风景 留恋留恋

抚摸斑驳的树影转圈盘旋

金色夕阳的呓语绕耳缠绵

你看我看的 这个世界 美好至极

你看呐我的所有 都是我的美丽

生活的方式从来不换

早上到傍晚也一成不变

马路上的人们匆匆奔走

安静的路口早已车满为患

每个人的梦里都存在焦虑

晚睡早起又白黑交替

书包装的也换成压力

在同世界却没共同话题

也许还有人坐在

回家的路口等你等你下班

木质的圆桌摆满了他给你做的大餐

千万不要放弃你所追求的东西

我始终相信每个人都有独特的美丽

抚摸斑驳的树影转圈盘旋

金色夕阳的呓语绕耳缠绵

你看我看的 这个世界 美好至极

你看呐我的所有 都是我的美丽

你说你受到了不公平

可是大多人的生活也差不多

要走的路刚好又不通行

又背上莫名其妙的锅

想去看看世界的另一边

可是现在没钱也没时间

往后又要拿钱换时间

现在要拿时间换钱

为什么

这世界如此的悲观

眼睛看到的只有黑暗

18年都没女孩喜欢

这种成就也相当极端

刚攒好钱球鞋又涨价

又被朋友们讽刺的想法

幻想早被现实给绑架

想要野马却只有桑塔纳

(指尖)时间总不给我机会

(旋转)也怪我追不到机位

(萦绕)任何故事当不了主角做的决定也太过于愚昧

(耳边)还好没人看见我失态

(心跳)我的人生充斥着失败

(疯狂)只是这世界变化太快

(留恋)我被排除在节奏之外

我的美丽

原唱 : 小霞

改编词: young-seven67 / 海洋Bo

原编曲:秦四风

制作人:张泽宥/小贾

吉他:小贾

混音:何世渝

母带:何世渝

统筹:郭凯翌/小贾

营销:网易飓风

点击右上角即可分享
微信分享提示