相关的表和字段:
r_binrel:mat_type_id(货品ID),bin_id(仓位ID),last_updt(时间)
r_binmas:id,bin_no(仓位号)关系:
r_binrel.bin_id=r_binmas.id在r_binrel中,一个mat_type_id可能有多个bin_id
现在我需要每个mat_type_id只拿出一个任意的bin_no,我的做法是取last_updt最大的那个
语句如下:
select r_binrel.mat_type_id,r_binmas.bin_no
from r_binrel,r_binmas 
where r_binrel.bin_id=r_binmas.id and 
      r_binrel.last_updt=(select max(last_updt)
                          from r_binrel rel
                          where rel.mat_type_id=r_binrel.mat_type_id)又或:
select t_a.mat_type_id,t_a.bin_no
from 
      (select r_binrel.mat_type_id,r_binmas.bin_no,r_binrel.last_updt 
      from r_binrel,r_binmas 
where r_binrel.bin_id=r_binmas.id ) t_a,

(select mat_type_id,max(last_updt) last_updt 
from r_binrel
group by mat_type_id) t_b where t_a.mat_type_id=t_b.mat_type_id and t_a.last_updt=t_b.last_updt ;但是效率极低,几分钟都没反应,这两个表的数据不算多,只有2万条左右
单独执行
select r_binrel.mat_type_id,r_binmas.bin_no,r_binrel.last_updt 
      from r_binrel,r_binmas 
where r_binrel.bin_id=r_binmas.id 

select mat_type_id,max(last_updt) last_updt 
from r_binrel
group by mat_type_id
的速度都很快,几秒钟就出来了
为何合在一起就效率这么低呢?
请高手指点一下
如果是我的方法有误,请问还有什么办法能达到我想要的目的
谢谢!!