两表关联取A表部分字段,B表最小数据及其他的字段优化
A 
                            ID                     姓名               工资               等级 
 	1	张	300	1 
 	2	王	400	2 
 	3	唐	500	3   
 B 
                   等级_                     工资_            备字1_            备字2_ 
 	1	400	SM                     SDFF 
 	2	420	SM2                  FDDD 
 	5	445	SMSD               SDF 
 	6	460	SDD                  GSDF   
 下面SQL如何优化,没经验,20分全送上了, 
 select   姓名,等级,工资, 
 新工资=(select      min(工资_)   from         b   where      等级 <等级_), 
 备字1      =(select   备字1_   from   b      where   工资_=   ( 
 	select      min(工资_)   from         a      where      等级 <等级_)         ) 
 备字2      =(...取法同上) 
    from      a
------解决方案--------------------select 姓名,等级,工资,工资,字1,备注2 
  from  a  
 ,b c 
 where not exists(select 1 from b where 等级_> =等级_ or 工资_> =c.工资_)
------解决方案--------------------create table A(ID int, 姓名 varchar(10), 工资 int, 等级 int) 
 insert A select 1, '张 ',300,1 
 union all select 2, '王 ',400,2 
 union all select 3, '唐 ',500,3   
 create table B(等级_ int, 工资_ int, 备字1_ varchar(10), 备字2_ varchar(10)) 
 insert B select  1,400, 'SM ',        'SDFF ' 
 union all select 2,420, 'SM2 ',       'FDDD ' 
 union all select 5,445, 'SMSD ',      'SDF ' 
 union all select 6,460, 'SDD ',       'GSDF '   
 select 姓名, 工资, 等级, 
 新工资=(select min(工资_) from B where tmp.等级 <等级_), 
 备字1=( select 备字1_ from B where 工资_=(select min(工资_) from B where tmp.等级 <等级_) ), 
 备字2=( select 备字2_ from B where 工资_=(select min(工资_) from B where tmp.等级 <等级_) ) 
 from A as tmp   
 --result 
 姓名         工资          等级          新工资         备字1        备字2         
 ---------- ----------- ----------- ----------- ---------- ----------  
 张          300         1           420         SM2        FDDD 
 王          400         2           445         SMSD       SDF 
 唐          500         3           445         SMSD       SDF   
 (3 row(s) affected)   
我的异常网推荐解决方案:软件开发者薪资,http://www.aiyiweb.com/other/1391128.html