连接/合并两个表以在SQL中创建第三个表

时间:2013-01-21 10:33:28

标签: sql sybase

我有两个不同的表,如下所示:

--------Table 1---------------------------------------------------------
Cat1           Cat2          Cat3        Value1
a                             d1           13
b              e1                          13
a              e2             d1           13
c                             d2           13
a              e1                          13
a                             d1           13
--------Table 2 -------------------------------------------------
Cat1           Cat2           Cat3       Value2    
a              e2             d1           113
c                             d2           132    
a                             d1           134
a                             d1           131
b              e1                          113
a              e1                          133

上表中的Cat1和Cat2相同,但顺序可能不同。我想结合上面的两个表,以便所需的表如下所示:

--------Desired Table---------------------------------------------------------
Cat1           Cat2          Cat3        Value1      Value2
a                             d1           13        134 
b              e1                          13        113
a              e2             d1           13        113
c                             d2           13        132
a              e1                          13        113
a                             d1           13        134

我使用的是sybase的旧版本。

谢谢!

2 个答案:

答案 0 :(得分:0)

你是说这个吗?

INSERT INTO table3 (Cat1,Cat2,Cat3,Value1,Value2)
SELECT t1.Cat1, t1.Cat2, t1.Cat3, t1.Value1, t2.value2
FROM table1 as t1, table2 as t2
where t1.Cat1 = t2.Cat2

答案 1 :(得分:0)

试试这个(来自我的ANSI SQL经验):

    SELECT a.cat1,
           a.cat2,
           a.cat3,
           a.value1,
           b.value2
    FROM tab1 a
    LEFT OUTER JOIN
      (SELECT cat1,
              cat2,
              cat3,
              max(value2) value2
       FROM tab2
       GROUP BY cat1,
                cat2,
                cat3) b ON a.cat1 = b.cat1
    AND a.cat2 = b.cat2
    AND a.cat3 = b.cat3;