第一种方式
select a.c1,a.c2,b.c3
from a
left join b on a.c1=b.c1
where a.c1='dddd' and b.c2='xxxxx'
第二种方式
select *
(
select a.c1,a.c2,b.c3
from a
left join b on a.c1=b.c2
) ab
where c1='dddd' and c2='xxxxx'
这两个效率会一样吗??
为什么??SQL
select a.c1,a.c2,b.c3
from a
left join b on a.c1=b.c1
where a.c1='dddd' and b.c2='xxxxx'
第二种方式
select *
(
select a.c1,a.c2,b.c3
from a
left join b on a.c1=b.c2
) ab
where c1='dddd' and c2='xxxxx'
这两个效率会一样吗??
为什么??SQL
笔误第一种方式
select a.c1,a.c2,b.c3
from a
left join b on a.c1=b.c1
where a.c1='dddd' and b.c2='xxxxx'
第二种方式
select *
(
select a.c1,a.c2,b.c3
from a
left join b on a.c1=b.c1
) ab
where c1='dddd' and c2='xxxxx'
这两个效率会一样吗??
为什么??
应该是一样的,因为你的两个语句语义是一样的,所以关系引擎在解析的时候会做transformation,最后应该转换成相同的逻辑表达树,所以是一样的。