日期:2014-05-18 浏览次数:20569 次
create table #aa (InMainID int,price int)
create table #bb (InMainID int,OutMainID int,price int)
create table #cc (outMainID int)
insert into #aa
select 1,10
union
select 2,20
insert into #bb
select 1,1,50
select *
from #aa a
left join #bb b on a.inMainID=b.InMainID
inner join #cc c on b.OutMainID=c.OutMainID
where a.InMainID=1
select *
from #aa a
left join #bb b on a.inMainID=b.InMainID --a 和b 先做left join ,有一行记录 inmainid = 1的
inner join #cc c on b.OutMainID=c.OutMainID --b 和c 再做inner join,c中无数据,所以出来就是没有一行满足
where a.InMainID=1
------解决方案--------------------
一个0记录的表,与另一个非零记录的表进行左连接,怎么能查得出东西来呢!
左连接是,取左表的记录,及右表匹配的记录.
------解决方案--------------------
没有记录
------解决方案--------------------
select *
from #aa a
left join #bb b on a.inMainID=b.InMainID --先执行left join
inner join #cc c on b.OutMainID=c.OutMainID --上面步骤过滤出来的数据与c inner join
where a.InMainID=1 --这里过滤上面的所有结果
------解决方案--------------------
select *
from #aa a
left join #bb b on a.inMainID=b.InMainID --a 和b 先做left join ,有一行记录 inmainid = 1的
inner join #cc c on b.OutMainID=c.OutMainID --b 和c 再做inner join,c中无数据,所以出来就是没有一行满足
where a.InMainID=1
------解决方案--------------------