sqlserver数据库提供了右关联RIGHTJOIN的关联方式。这个关联是以右边的表为基础,左边能关联上的就出现结果,关联不上的就出现null。同时,rightjoin和rightouterjoin在sqlserver中是一回事,效果是一样的
方法/步骤
1、创建一个临时表,用于演示sqlserver语法中的右关联RIGHTJOIN使用IFO幞洼踉残BJECT_ID('tempdb..#墉掠载牿tbl1')ISNOTNULLDROPTABLE#tbl1;CREATETABLE#tbl1(Col1varchar(50),Col2varchar(200));
2、创建另外一个临时表,用于演示sqlserver语法中的右关联RIGHTJOIN使用IFOBJECT_ID('tempdb..#tbl2')ISNOTNULLDROPTABLE#tbl2;CREATETABLE#tbl2(Col1varchar(50),Col3varchar(200));
3、往临时表中插入几行测试数据,其中包辖艮鲔鸣括插入Null值数据insertinto#tbl1(Col1,Col2)values('Code1刻八圄俏9;,'第1列');insertinto#tbl1(Col1,Col2)values('Code10','第2列');insertinto#tbl1(Col1,Col2)values('Code100','第3列');insertinto#tbl2(Col1,Col3)values('Code1',NULL);insertinto#tbl2(Col1,Col3)values('Code10','老师');insertinto#tbl2(Col1,Col3)values('Code99','学生');
4、查询临时表中的测试数据select*from#tbl1;select*from#tbl2;
5、使用右关联RIGHTJOIN关联两张表,以第二个临时表为准,查询结果。右关联的结果是,以右边的表为准,左边能关联上的就出现,关联不上的就是nullselect*from#tbl1arightjoin#tbl2bonb.Col1=a.Col1
6、使用RIGHTOUTERJOIN关联两张表,以第二个临时表为准,查询结果select*from#tbl1arightouterjoin#tbl2bonb.Col1=a.Col1
7、从运行结果可以看出,对于rightjoin和rightouterjoin两种写法在sqlserver中其实是一样的效果。右关联,也可以使用左关联来实现,只需要交换一下表的位置和关键字select*from#tbl2aleftjoin#tbl1bonb.Col1=a.Col1