码迷,mamicode.com
首页 > 数据库 > 详细

MySQL的SQL语句 - 数据操作语句(13)- 子查询(8)

时间:2020-12-09 11:38:34      阅读:8      评论:0      收藏:0      [点我收藏+]

标签:等于   网址   现在   作用域   规则   ofo   子查询   select   官方   

关联子查询

关联子查询是一个子查询,它包含对同时出现在外部查询中的表的引用。例如:


1.SELECT * FROM t1
2.  WHERE column1 = ANY (SELECT column1 FROM t2
3.                       WHERE t2.column2 = t1.column2);

请注意,子查询包含对 t1 列的引用,即使子查询的 FROM 子句没有提到表 t1。因此,MySQL 在子查询之外查找,在外部查询中找到 t1。

假设表 t1 包含一行,其中 column1 = 5 并且 column2 = 6;同时,表 t2 包含 column1 = 5 并且 column2 = 7 的行。简单的表达式 ... WHERE column1 = ANY (SELECT column1 FROM t2) 将为 TRUE,但在本例中,子查询中的 WHERE 子句为 FALSE(因为 (5,6) 不等于 (5,7)),因此整个表达式为 FALSE。

作用域规则:MySQL 从内部到外部进行计算。例如:

1.SELECT column1 FROM t1 AS x
2.  WHERE x.column1 = (SELECT column1 FROM t2 AS x
3.    WHERE x.column1 = (SELECT column1 FROM t3
4.      WHERE x.column2 = t3.column1));

在这个语句中,x.column2 必须是表 t2 中的一列,因为 SELECT column1 FROM t2 AS x ... 重命名了 t2。它不是表 t1 中的列,因为 SELECT column1 FROM t1 ... 是一个更远的外部查询。

官方网址:
https://dev.mysql.com/doc/refman/8.0/en/correlated-subqueries.html

MySQL的SQL语句 - 数据操作语句(13)- 子查询(8)

标签:等于   网址   现在   作用域   规则   ofo   子查询   select   官方   

原文地址:https://blog.51cto.com/15023289/2559609

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!