antd 嵌套子表格_MySQL 基本语句九 Subquery 子查询

ae755cd57922f0558f9ab7d8edba3178.png

Subquery 子查询可以嵌套在select,where,from语句中

Subquery 子查询解决query依赖问题

-子查询能嵌套在Select,insert,update,or delete 语句中或者其他的子查询语句里面,也就是所谓的嵌套。子查询支持32层嵌套。

-子查询也可以使用>< OR =在 IN ANY ALL字查询语句里面

总体来说,以下情况都可以使用子查询:

90cb68a9b1be781711e2e1efec70abd8.png

用where的语句,来说一下outer query 和 inner query:

两个表格,一个关于销售的订单,一个关于销售的顾客信息。

8809e6f4f4117c360cc6fa2ee9530be4.png

代码如下,黄色区域是子查询,使用子查询要把子查询代码用括号括起来。

aafcd14862ee2913eb1f20298058bc8f.png

单独输入子查询,得到的结果如下,只会显示顾客的ID信息:

6cfafcaf6171896161c0343342194e20.png

SQL在执行语句的时候,先是将子查询的信息提取出来,然后在执行外部查询得到最后结果。

推荐下面这个网站,讲到了如何嵌套三个语句在一起。

https://www.sqlservertutorial.net/sql-server-basics/sql-server-subquery/​www.sqlservertutorial.net

The Ultimate Guide To SQL Server Subquery

https://www.sqlservertutorial.net/sql-server-basics/sql-server-subquery/​www.sqlservertutorial.net

来个图解,w3resources.com 看看执行语句的顺序吧,感觉十分清楚~

df58c8a7e465ffac2d75c6229ead742b.png

IN的基本语句结构:

SELECT column-names

FROM table-name1

WHERE value IN (SELECT column-name

FROM table-name2

WHERE condition)

ANY 的基本语句结构:

SELECT column-names

FROM table-name

WHERE column-name operator ANY

(SELECT column-name

FROM table-name

WHERE condition)

ANY 语句的例子:

SELECT ProductName

FROM Product

WHERE Id = ANY

(SELECT ProductId

FROM OrderItem

WHERE Quantity = 1)

47b67bfa0883c84834b35711d66ef5e3.png

6588b1041fbafab5d64c3d161f46a93d.png

ALL 的语句结构:

SELECT column-names

FROM table-name

WHERE column-name operator ALL

(SELECT column-name

FROM table-name

WHERE condition)

ALL的语句例子:

SELECT DISTINCT FirstName + ' ' + LastName as CustomerName 选择姓名为新的一列

FROM Customer, [Order]

WHERE Customer.Id = [Order].CustomerId 匹配两个表中的ID相同

AND TotalAmount > ALL 列出订单金额大于平均数的顾客姓名

(SELECT AVG(TotalAmount)

FROM [Order]

GROUP BY CustomerId

a2730fe938f1f19240c2c9e70e079937.png

结果:

92f9433c27894d11b028bea4e7b11de7.png

(插一嘴,关于虚拟列与实际列的区别

Virtual : 值不是实际存储的,每次读取动作时候会被计算

Stored : 值是实际存储的,值是在插入或者更新的时候被更新的)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值