相关子查询 与 嵌套子查询 有何区别 ?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了相关子查询 与 嵌套子查询 有何区别 ?相关的知识,希望对你有一定的参考价值。

相关子查询 与 嵌套子查询 有何区别 ?

参考技术A 相关子查询是先逐行扫描外部查询的每一行,让每一行与内部查询的表进行对比,满足内部查询where 条件的返回真,不满足的返回假.单独执行内部查询是会报错的。

嵌套子查询是先对内部查询进行查询,将查询出来的结果返回给外部查询的where 做为条件.在执行外部查询!本回答被提问者采纳
参考技术B 一楼是高手,回答的很好!

Yii2.0ActiveRecord嵌套子查询(AR子查询)

yii2.0的ActiveRecord是可以嵌套子查询的。

比如从一个子查询里面筛选数据。

首先实例化出来一个Query对象,代表子查询。

$subQuery = new yiidbQuery();
$subQuery->from(‘tableA‘)->where([‘>=‘, ‘id‘, 10]);

假如UserModel是一个AR:

$list = UserModel::find()->from([‘tmpA‘ => $subQuery])->all();

from里面传数组,数组KEY是临时表的名字,值是Query对象。

同样的如果是AR的join里面也要用到子查询,参数方式是一样的。

以上是关于相关子查询 与 嵌套子查询 有何区别 ?的主要内容,如果未能解决你的问题,请参考以下文章

子查询(嵌套子查询)

SQL相关子查询和嵌套子查询的区别

SQL Server 之 子查询与嵌套查询

SQL嵌套子查询和相关子查询的执行过程有啥区别

SQL嵌套子查询和相关子查询的执行过程有啥区别

关于SQL DELETE嵌套子查询问题