多个查询语句能否一次把结果导出_SQL系列文章(四):复杂查询

你好,我在学习SQL(Structured Query Language),并通过写文章的方式整理和输出所学,这是第四篇,题目是《复杂查询》,主要内容是子查询。

08c24fdd63155a164fe0923d00c3bdd7.png
这是我通过navicat客户端创建的表,为了显示全部数据导出为excel格式,后面会从这个表中查询数据

什么是子查询呢?

当查询语句当中嵌套查询语句,前者就被称为主查询,后者被称为子查询——它也是一个完整的查询语句。

什么时候要用子查询呢?

当想要查询的问题中某个元素不能用单个语句实现的时候,就要用子查询了。这样说比较抽象,我举个例子。

现在要求查询在“掌”这门功课中,成绩比黄老邪的成绩高的那些学生的信息,包括学号、姓名、课程号、课程名称、成绩。

在这个问题中,有这么几个要素:

想要得到的查询结果:学号、姓名、课程号、课程名称、成绩

条件:课程名称为“掌”,成绩>黄老邪在掌这门课上的成绩

在这些要素中,学号、姓名、课程号、课程名称、成绩都可以用select这个语句实现,课程名称为“掌”可以用where语句实现,唯独“黄老邪在掌这门课上的成绩”这个要素没办法通过单个语句实现。

所以,想要得到“黄老邪在掌这门课上的成绩”,就需要用子查询实现。

cefcd5094b8c5c8ec82b01c4c31d2133.png
子查询

a7a1f42a42e655ced6d830e5558a48a5.png
主查询+子查询

嵌套查询的运行顺序是先运行子查询,后运行主查询。在查询语句内部的运行顺序在上一篇文章中讲过,它是这样的:

9f3ea6d7bfbd71228f710094b46d2740.png

在上面的例子中子查询出现在where语句中,如果有需要,它也可以出现在select语句中,视情况而定,比如这样:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值