创建临时表
CREATE table #_tmp1218 (A int,B int)
插入数据
insert into #_tmp1218 values (1,2)
insert into #_tmp1218 values (23)
insert into #_tmp1218 values (3,4)
用下面这个语句查询
select (select A from #_tmp1218 where #_tmp1218.A = b.B) from #_tmp1218 b
查询结果为
请问上面那条语句,什么语法?百度很久还是看不明白
select后面紧跟一个select,这个执行过程,是什么样的?
先执行括号内的查询语句,然后将查询的结果作为一个新的表参与外部的查询
子查询啊。兄弟。先执行括号里面的,括号里面执行完事,然后执行外面的select
先执行括号里面的,括号里面执行完事,然后执行外面的select
select (select A from #_tmp1218 where #_tmp1218.A = b.B) from #_tmp1218 b
先查询 #_tmp1218 表,然后给这个表一个别名b
然后执行 (select A from #_tmp1218 where #_tmp1218.A = b.B)
他的意思就是自关联,找出A字段和B字段相等的数据,如果没有相等的就显示null
希望可以解答您的疑惑,详细执行步骤请参考如下文章
https://blog.csdn.net/mango_love/article/details/44836829
子查询,先执行括号里面的子查询