没有数据,不知道什么情况,我只能举个例子,比如过滤:--SQL1 select a.number from #A a left join #B b on b.number = a.number left join #C c on c.number = a.number left join #D d on d.number = a.number where b.number is null and c.number is null and d.number is null--SQL2 select a.number from #A a left join ( select number from #B union all select number from #C union all select number from #D )b on b.number = a.number where b.number is null当4个表数据量非常大的时候,SQL2要比SQL1快很多。
select a.number from #A a
left join #B b on b.number = a.number
left join #C c on c.number = a.number
left join #D d on d.number = a.number
where b.number is null
and c.number is null
and d.number is null--SQL2
select a.number from #A a
left join (
select number from #B
union all
select number from #C
union all
select number from #D
)b on b.number = a.number
where b.number is null当4个表数据量非常大的时候,SQL2要比SQL1快很多。