2012-09-14 63 views
0

我有2個表。 1個表格有3行,另一個表格有5行。我想將這兩個表連接在一起,結果應分別顯示3行和5行。有沒有什麼方法可以實現使用sql語句?任何幫助將不勝感激。合併不同表中的行

+1

這不是加入,那是獲得聯盟。 – dasblinkenlight

回答

2

您可以使用UNION爲此,

SELECT colA, colB, colC, 1 as OrderThis 
FROM tableA 
UNION ALL 
SELECT colA, colB, colC, 2 as OrderThis 
FROM tableB 
ORDER BY OrderThis ASC 

有使用UNION

  • 的兩條基本規則的列數必須相同,從兩個詢問
  • 數據類型必須兼容

UNION有一個可選參數ALL。如果您省略ALL參數,則UNION將清楚地顯示組合的所有唯一記錄。

如您所見,我添加了一個虛擬列OrderThis。這將成爲您排序的基礎。但問題是它會顯示在你的結果列表中。解決方案是通過將它包裝在子查詢中,

SELECT colA, colB, colC 
FROM 
(
    SELECT colA, colB, colC, 1 as OrderThis 
    FROM tableA 
    UNION ALL 
    SELECT colA, colB, colC, 2 as OrderThis 
    FROM tableB 
) a 
ORDER BY OrderThis ASC 
+0

它是行或列必須是相同的。 –

+0

@dnyanwaychal這是一個錯字:D謝謝你的評論。 –