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 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!