sqlserver数据库右关联RIGHT JOIN的使用方法
1、创建一个临时表,用于演示sqlserver语法中的右关联RIGHT JOIN使用
IF OBJECT_ID('tempdb..#tbl1') IS NOT NULL DROP TABLE #tbl1;
CREATE TABLE #tbl1(
Col1 varchar(50),
Col2 varchar(200)
);
2、创建另外一个临时表,用于演示sqlserver语法中的右关联RIGHT JOIN使用
IF OBJECT_ID('tempdb..#tbl2') IS NOT NULL DROP TABLE #tbl2;
CREATE TABLE #tbl2(
Col1 varchar(50),
Col3 varchar(200)
);
3、往临时表中插入几行测试数据,其中包括插入Null值数据
insert into #tbl1(Col1, Col2) values('Code1', '第1列');
insert into #tbl1(Col1, Col2) values('Code10', '第2列');
insert into #tbl1(Col1, Col2) values('Code100', '第3列');
insert into #tbl2(Col1, Col3) values('Code1', NULL);
insert into #tbl2(Col1, Col3) values('Code10', '老师');
insert into #tbl2(Col1, Col3) values('Code99', '学生');
4、查询临时表中的测试数据
select * from #tbl1;
select * from #tbl2;
5、使用右关联RIGHT JOIN关联两张表,以第二个临时表为准,查询结果。右关联的结果是,以右边的表为准,左边能关联上的就出现,关联不上的就是null
select *
from #tbl1 a
right join #tbl2 b on b.Col1 = a.Col1
6、使用RIGHT OUTER JOIN关联两张表,以第二个临时表为准,查询结果
select *
from #tbl1 a
right outer join #tbl2 b on b.Col1 = a.Col1
7、从运行结果可以看出,对于right join和right outer join两种写法在sqlserver中其实是一样的效果。右关联,也可以使用左关联来实现,只需要交换一下表的位置和关键字
select *
from #tbl2 a
left join #tbl1 b on b.Col1 = a.Col1