在多个字段上执行内部连接时获取其他行的表(oracle查询)

时间:2015-04-20 19:50:40

标签: oracle

select pmt.col1,table2.col1,table2.col3,table3.col1,table3.col1 
from   table2 inner join (select distinct 
col1,col2 from table1) pmt on 
table2.col1=pmt.col1 inner join table3 on 
table3.col1=table1.col2 where table2.col2 is null;    

有没有办法可以在这个查询中选择pmt.col3(这是table1的其他列)。

非常感谢

1 个答案:

答案 0 :(得分:2)

只需选择子查询中的列即可。例如,使用max将结果集限制为一条记录:

select pmt.col1,
       (select max(col3) 
          from table1 t1
         where t1.col1 = pmt.col1
           and t1.col2 = pmt.col2) col3,
       table2.col1,
       table2.col3,
       table3.col1,
       table3.col1 
  from table2 
 inner join (select distinct col1,col2
               from table1) pmt 
    on table2.col1=pmt.col1 
 inner join table3 
    on table3.col1=table1.col2 
 where table2.col2 is null;