oracle数据库合并来自多个表的结果

时间:2014-01-15 12:59:41

标签: sql database oracle

我想合并来自两个表的数据: -

  • 表T1(id,c2,c3,switch)
  • 表T2(id,d2,d3)

    T1
    -----
    id   c1      c2      switch
    1   joe    darling     Y
    1   maria    kk        N
    
    T2
    --------------
    id   d1       d2
    1  sydney   austraila
    

    现在,如果T1中的开关是'Y'

    我希望输出为

    joe darling sydney australia // which is fine..
    

    如果切换为'N'<​​/ p>

    我仍然希望基于开关的名字和姓氏是'Y',其余的值来自T2表。

    joe darling sydney australia //how to achieve this.
    
  • 1 个答案:

    答案 0 :(得分:1)

    假设您每个ID只有一个Y切换,请尝试以下操作:

    SELECT 
         T12.C1, T12.C2, T2.d1, T2.D2
    FROM T1
    JOIN T1 as T12 ON (T1.ID=T12.ID) AND (T12.switch='Y')    
    LEFT JOIN T2 on (T1.ID=T2.ID)
    

    SQLFiddle demo