sqlserver数据库中,左关联通常使用LEFTJOIN,但是,在平时学习过程中,有时候又会出现LEFTOUTERJOIN,这两个写法到底是不是一样的呢?
方法/步骤
1、创建一个临时表,用于演示sqlserver语法中的LEFTJOIN、LEFTOUTE六咝媲拜RJOIN使用IFOBJECT_ID('tempdb..#tmp1媪青怍牙')ISNOTNULLDROPTABLE#tmp1;CREATETABLE#tmp1(Col1varchar(50),Col2varchar(200));
2、创建另外一个临时表,用于演示sqlserver语法中的LEFTJOIN、LEFTOUTERJOIN使用IFOBJECT_ID('tempdb..#tmp2')ISNOTNULLDROPTABLE#tmp2;CREATETABLE#tmp2(Col1varchar(50),Col3varchar(200));
3、往临时表中插入几行测试数据,其中包辖艮鲔鸣括插入Null值insertinto#tmp1(Col1,Col2)values('Code1'荑樊综鲶,'第一列');insertinto#tmp1(Col1,Col2)values('Code10','第二列');insertinto#tmp1(Col1,Col2)values('Code100','第三列');insertinto#tmp2(Col1,Col3)values('Code1',NULL);insertinto#tmp2(Col1,Col3)values('Code10','职员');insertinto#tmp2(Col1,Col3)values('Code99','经理');
4、查询临时表中的测试数据select*from#tmp1;select*from#tmp2;
5、使用LEFTJOIN关联两张表,以第一个临时表为准,查询Col3不为空的结果select*from#tmp1aleftjoin#tmp2bonb.Col1=a.Col1andb.Col3ISNOTNULL
6、使用LEFTOUTERJOIN关联两张表,以第一个临时表为准,查询Col3不为空的结果select*from#tmp1aleftouterjoin#tmp2bonb.Col1=a.Col1andb.Col3ISNOTNULL
7、从运行结果可以看出,对于leftjoin和leftouterjoin两种写法在sqlserver中其实是一样的效果。平时写sql语句的时候不必纠结两种写法,就使用leftjoin即可