sqlserver数据库中,左联系关系凡是利用LEFT JOIN,可是,在日常平凡进修过程中,有时辰又会呈现LEFT OUTER JOIN,这两个写法到底是不是一样的呢?
建立一个姑且表,用于演示sqlserver语法中的LEFT JOIN、LEFT OUTER JOIN利用
IF OBJECT_ID('tempdb..#tmp1') IS NOT NULL DROP TABLE #tmp1;
CREATE TABLE #tmp1(
Col1 varchar(50),
Col2 varchar(200)
);
建立别的一个姑且表,用于演示sqlserver语法中的LEFT JOIN、LEFT OUTER JOIN利用
IF OBJECT_ID('tempdb..#tmp2') IS NOT NULL DROP TABLE #tmp2;
CREATE TABLE #tmp2(
Col1 varchar(50),
Col3 varchar(200)
);
往姑且表中插入几行测试数据,此中包罗插入Null值
insert into #tmp1(Col1, Col2) values('Code1', '第一列');
insert into #tmp1(Col1, Col2) values('Code10', '第二列');
insert into #tmp1(Col1, Col2) values('Code100', '第三列');
insert into #tmp2(Col1, Col3) values('Code1', NULL);
insert into #tmp2(Col1, Col3) values('Code10', '人员');
insert into #tmp2(Col1, Col3) values('Code99', '司理');
查询姑且表中的测试数据
select * from #tmp1;
select * from #tmp2;
利用LEFT JOIN联系关系两张表,以第一个姑且表为准,查询Col3不为空的成果
select *
from #tmp1 a
left join #tmp2 b on b.Col1 = a.Col1 and b.Col3 IS NOT NULL
利用LEFT OUTER JOIN联系关系两张表,以第一个姑且表为准,查询Col3不为空的成果
select *
from #tmp1 a
left outer join #tmp2 b on b.Col1 = a.Col1 and b.Col3 IS NOT NULL
从运行成果可以看出,对于left join和left outer join两种写法在sqlserver中其实是一样的结果。日常平凡写sql语句的时辰不必纠结两种写法,就利用left join即可
0 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!