数据库为Oracle8i,当我发完这个贴子时自己搞定了
select a.*
from 表 a ,
(select 字段1,min(字段2) 字段2
from r1009
group by 字段1) b
where a.字段1=b.字段1 and a.字段2=b.字段2
谁来给解释解释第一种写法的慢的原因
select a.*
from 表 a ,
(select 字段1,min(字段2) 字段2
from r1009
group by 字段1) b
where a.字段1=b.字段1 and a.字段2=b.字段2
谁来给解释解释第一种写法的慢的原因
select * from 表名 a
where exists
(select 1
from (select 字段1,min(字段2) 字段2
from 表名
group by 字段1)
where 字段1=a.字段1 and 字段2=a.字段2)这个算法中你先执行内部select操作,找出第一个最小字段2,然后做了一次关联(第2次select),这时候已经从中找出了你想要的记录来了,你又做了一次select,这次是消耗时间很大的操作,因为如果你第二次选择有300条记录,则第三次要做“表中记录数”*300次选择,感觉是一次无效的多余操作。oracle我没有用过,对不起,希望这次我能对。十分抱歉