2011-12-12 37 views
0

首先查询获取的ID和注册时间:的Oracle 11g相关子查询返回多个列

SELECT 
    t1.mid 
    t1.regtime 

子查询需要去另一个表,并SELECT address, city from t2 WHERE t2.mid = t1.mid AND MAX(t2.seqs)

t2可以包含具有不同序列号的多个中频。所以我们希望mids能够匹配,而seqs要最高。

问题:返回1个子查询中的多个列,同时获得最高的t2.mid。

期望的最终结果:

mid | regtime | address | city 

回答

5
with t as 
    (select t2.mid, address, city 
     from t2 
     where t2.seqs = (select max(tt.seqs) 
          from t2 tt 
          where tt.mid = t2.mid) 
    ) 
select t1.mid, t1.regtime, t.address, t.city from t1, t where t1.mid = t.mid 

应该工作。

HTH

+0

非常感谢!今天学到了新东西。 – djdy