sqlserver左关联LEFT JOIN的使用与注意事项

sqlserver在结合查询数据的时辰,有时辰但愿以某一个张表的成果为准,联系关系别的一张表,不管是否联系关系得上,第一张表的成果都呈现在成果集中 。 这个时辰就可以利用左联系关系left join了 。 可是,前提写的分歧位置,查询成果将纷歧样
方式/
1建立一个姑且表,用于演示sqlserver语法中的LEFT JOIN利用
IF OBJECT_ID('tempdb..#tmp1') IS NOT NULL DROP TABLE #tmp1; 
CREATE TABLE #tmp1(
    Code varchar(50),             -- 编码
    Remark varchar(200)        -- 备注
);

sqlserver左关联LEFT JOIN的使用与注意事项

文章插图

2建立别的一个姑且表,用于演示sqlserver语法中的LEFT JOIN利用
IF OBJECT_ID('tempdb..#tmp2') IS NOT NULL DROP TABLE #tmp2; 
CREATE TABLE #tmp2(
    Code varchar(50),          -- 编码
    Title varchar(200)          -- 职位
);

sqlserver左关联LEFT JOIN的使用与注意事项

文章插图

3往姑且表中插入几行测试数据,此中包罗插入Null值
insert into #tmp1(Code, Remark) values('Code1', '海说神聊京');
insert into #tmp1(Code, Remark) values('Code10', '上海');
insert into #tmp1(Code, Remark) values('Code100', '巴黎');
insert into #tmp2(Code, Title) values('Code1', NULL);
insert into #tmp2(Code, Title) values('Code10', '人员');
insert into #tmp2(Code, Title) values('Code99', '司理');

sqlserver左关联LEFT JOIN的使用与注意事项

文章插图

4查询姑且表中的测试数据
select * from #tmp1;
select * from #tmp2;

sqlserver左关联LEFT JOIN的使用与注意事项

文章插图

5利用LEFT JOIN联系关系两张表,以第一个姑且表为准,查询职位不为空的成果,正常写法如下
select * 
from #tmp1 a
left join #tmp2 b on b.Code = a.Code and b.Title IS NOT NULL 

sqlserver左关联LEFT JOIN的使用与注意事项

文章插图

6利用LEFT JOIN联系关系两张表,以第一个姑且表为准,查询职位不为空的成果,将职位不为空的前提写到Where前提中去
select * 
from #tmp1 a
left join #tmp2 b on b.Code = a.Code 
where b.Title IS NOT NULL

sqlserver左关联LEFT JOIN的使用与注意事项

文章插图

7【sqlserver左关联LEFT JOIN的使用与注意事项】从运行成果可以看出,对于left join前提写到join子句和写到where子句,成果是纷歧样的 。 left join联系关系的时辰,前提写到where中,就半斤八两于这个前提酿成了inner join,必需两个表都知足才出来成果 。 是以,日常平凡写left join前提的时辰要注重这个不同

sqlserver左关联LEFT JOIN的使用与注意事项

文章插图


以上内容就是sqlserver左关联LEFT JOIN的使用与注意事项的内容啦,希望对你有所帮助哦!

    推荐阅读