Oracle 11g关联子查询返回多列

时间:2011-12-12 20:31:37

标签: oracle oracle11g

第一个查询获取ID和注册时间:

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

1 个答案:

答案 0 :(得分: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