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

2025-05-05 04:49:59

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 OBJ苇质缵爨ECT_ID('tempdb..#tmp2&垆杪屑丝#39;) 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 aleft join #tmp2 b on b.Code = a.Code and b.Title IS NOT NULL

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

6、使用LEFT JOIN关联两张表,以第一个临时表为准,查询职位不为空的结果,将职位不为空的条件写到Where条件中去select *from #tmp1 aleft join #tmp2 b on b.Code = a.Codewhere b.Title IS NOT NULL

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

7、从运行结果可以看出,对于left join条件写到join子句和写到where子句,结果是不一样的。left join关联的时候,条件写到where中,就相当于这个条件变成了inner join,必须两个表都满足才出来结果。因此,平时写left join条件的时候要注意这个差别

sqlserver左关联LEFT JOIN的使用与注意事项
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢