代码之家  ›  专栏  ›  技术社区  ›  Rashmi Kini

SQL查询,通过连接将2行数据转换为单行

  •  -2
  • Rashmi Kini  · 技术社区  · 7 年前

    表A

    ID  Type    Value1  Value2
    1   X       100     200
    1   Y       200     300
    2   X       100     200
    

    ID  Name
    1   P
    2   Q 
    3   R
    4   S
    

    表A中具有匹配值的唯一ID

    ID  Name    x_Value1    x_value2    y_value1    y_value2
    1   P       100         200         200         300
    2   Q       100         200         0           0
    
    1 回复  |  直到 7 年前
        1
  •  2
  •   Gordon Linoff    7 年前

    join

    select b.id, b.name, ax.value1 as value1_x, ax.value2 as value2_x,
           ay.value1 as value1_y, ay.value2 as value2_y
    from b left join
         a ax
         on b.id = ax.id and ax.type = 'X' left join
         a ay
         on b.id = ay.id and ay.type = 'Y'
    where ax.id is not null or ay.id is not null;