2012-10-16 28 views
0

「合併」 列使用SQL Server 2008中,假設我有3個共同的列(不相關)的幾個表:從多個表

TABLE1

col1 colSomeOther col2 colAnotherOne 

TABLE2

col1 colSomeOther col2 colAnotherOne 

表3

col1 colSomeOther col2 colAnotherOne 

我想創建一個視圖,爲上面的3個表合併col1和2。類似:

VIEW

col1 col2 

其中COL1包含從表1,圖2和3的所有元素,和COL2含有COL2在表1中,2的所有元件,3.

是這可能嗎?

回答

1

是的。這是一個「聯盟」;具有相同「簽名」(數據列的數量和類型)的多個結果集,依次連接在一起。要做到這一點查詢很簡單,只要:

SELECT col1, col2 FROM TABLE1 
UNION ALL 
SELECT col1, col2 FROM TABLE2 
UNION ALL 
SELECT col1, col2 FROM TABLE3 

如果你想查詢「去重複」的結果,返回唯一行,從工會省略「ALL」關鍵字。使用ALL關鍵字,它只是簡單地將每個SELECT的結果粘貼到組合結果集,包括Table2中可能與Table1具有完全相同數據的行。

+0

如果你想從中創建一個視圖,請執行'CREATE VIEW view_name AS SELECT ...' – csm8118

+0

啊,是的,我忘記了OP要求「視圖」。 – KeithS

0

我想你問一個UNION

select col1, col2 from table1 
UNION ALL 
select col1, col2 from table2 
UNION ALL 
select col1, col2 from table3 

應工作,只要col1col2跨所有三個表兼容的數據類型。

如果您想消除重複的行,然後使用UNION而不是UNION ALL