34,588
社区成员
发帖
与我相关
我的任务
分享
你的这个条件
where A.po_id='YD-001791'
和
where I.po_id='YD-001791'
条件不一样
结果肯定不一样的
create table #lefttb
(
[name] varchar(20),
[date] datetime
)
insert into #lefttb
select 'A','2009-01-05' union all
select 'B','2009-01-06'
GO
create table #righttb
(
[name] varchar(20),
[date] datetime
)
insert into #righttb
select 'C','2009-01-05' union all
select 'D','2009-01-06'
select * from #lefttb a left join #righttb b on a.name=b.name
/*
name date name date
-------------------- ----------------------- -------------------- -----------------------
A 2009-01-05 00:00:00.000 NULL NULL
B 2009-01-06 00:00:00.000 NULL NULL
(2 行受影响)
*/
select * from #lefttb a left join #righttb b on a.name=b.name where a.date='2009-01-05'
/*
name date name date
-------------------- ----------------------- -------------------- -----------------------
A 2009-01-05 00:00:00.000 NULL NULL
(1 行受影响)
*/
select * from #lefttb a left join #righttb b on a.name=b.name where b.date='2009-01-05'
/*
name date name date
-------------------- ----------------------- -------------------- -----------------------
(0 行受影响)
*/
关联查询语句一:
select * from pod A
left join dbo.POQSSum1_view I
on A.wl_id=I.wl_id and A.ssn_id=I.ssn_id and A.po_id=I.po_id and A.col_id=I.col_id
where A.po_id='YD-001791'
这个从pod A这个表去筛选。
关联查询语句二:
select * from pod A
left join dbo.POQSSum1_view I
on A.wl_id=I.wl_id and A.ssn_id=I.ssn_id and A.po_id=I.po_id and A.col_id=I.col_id
where I.po_id='YD-001791'
这个从dbo.POQSSum1_view I这个表去筛选。
两个条件不同,结果可能不同,很正常的嘛。
create table t1(id int , val int)
insert into t1 values(1 , 1)
insert into t1 values(2 , 1)
insert into t1 values(3 , 2)
insert into t1 values(4 , 2)
insert into t1 values(5 , 3)
create table t2(id int , val int)
insert into t2 values(1 , 1)
insert into t2 values(2 , 2)
insert into t2 values(3 , 1)
insert into t2 values(4 , 2)
insert into t2 values(5 , 3)
go
select t1.* , t2.* from t1 left join t2 on t1.id = t2.id where t1.val = 1
/*
id val id val
----------- ----------- ----------- -----------
1 1 1 1
2 1 2 2
(所影响的行数为 2 行)
*/
select t1.* , t2.* from t1 left join t2 on t1.id = t2.id where t2.val = 1
drop table t1 , t2
/*
id val id val
----------- ----------- ----------- -----------
1 1 1 1
3 2 3 1
(所影响的行数为 2 行)
*/