子查寻和内联查寻.txt

来自「动态sql语句基本语法 1 :普通SQL语句可以用Exec执行 eg」· 文本 代码 · 共 34 行

TXT
34
字号

create table #123(id int,N1 int,N2 int)
insert into #123
select 1,10,20
union all select 2,5,5
union all select 3,5,5

create table #234(id int,pid int,N1 int,N2 int)
insert into #234
select 1,1,10,20
union all select 2,1,5,5
--union all select 2,1,5,5(如果加入这一行就会出错)

select id ,(select pid from #234 where aaa.id=id) as bbb
from #123  as aaa
group by id

1 1
2 1
3 NULL

select aaa.id,bbb.pid
from #123 as aaa ,#234 as bbb
where aaa.id=bbb.id

1 1
2 1


这两个语句没有可比性啊, 因为两个语句并不等效.
第1个查询得到的结果是left join的效果, 而且还要保证匹配的id唯一才不会导致查询出错
第2个语句是inner join的结果, 只有匹配的记录才会出现在结果集中, 而且对id是否唯一没有任何要求

(邹老大对此的解释)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?