2013-01-21 99 views
0

創建第三個表我有一個看起來像下面的2個不同的表:加入/合併兩個表中的SQL

--------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明顯的是舊版本。

謝謝!

回答

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; 
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 
+0

你的意思t1.Cat1 = t2.Cat1?如果是這種情況,那麼爲什麼我們不需要在表t1和t2之間的Cat2和Cat3上有任何條件。此外上面看起來像一個內部連接,它不適用於Cat1,Cat2,Cat3的條件。 – Zanam