首页 > 代码库 > 条件放在left join后面和where后面

条件放在left join后面和where后面

有这样一个查询的差异:

两张表如下:

语句在这里:

 1 create table #AA 2 ( 3   ID int, 4   Name nvarchar(50) 5 ) 6  7 insert into #AA 8 select 1,项目1 9 union all10 select 2,项目211 union all12 select 3,项目313 union all14 select 4,项目415 union all16 select 5,项目517 18 create table #BB19 (20   ID int,21   ProjectID int,22   Name nvarchar(50)23 )24 25 insert into #BB26 select 1,1,绿化园林27 union all28 select 2,2,安装玻璃29 union all30 select 3,3,拉电线
View Code

查询差异如下:

 

 条件放在left join ..on后面不会过滤掉左表的内容,对于右表,没有的内容会填充null。而如果条件放在where后面,则会过滤掉左表的内容。

 

条件放在left join后面和where后面