2013-04-30 108 views
5

我需要創建一個包含n個行值的視圖(或表格),這些視圖來自兩個具有相同結構的不同表格。例如:SQL - 在一個表/視圖中合併兩個表格內容

表歐洲

id name  Country 
---------------------------- 
1  Franz  Germany 
2  Alberto  Italy 
3  Miguel  Spain 

表美國

id name  Country 
---------------------------- 
1  John  USA 
2  Matthew  USA 

合併後的視圖必須是這樣的:

表WORLD

id name  Country 
---------------------------- 
1  John  USA 
2  Matthew  USA 
1  Franz  Germany 
2  Alberto  Italy 
3  Miguel  Spain 

這是可能的?如果是,如何?

預先感謝您的幫助,最好的問候

+1

爲什麼你要創建表/視圖?你只是通過簡單的SQL查詢得到結果 – 2013-04-30 13:35:11

+1

@BhavinChauhan如果它是一個大型數據集的常見請求視圖,如果他只有一個視圖或表,並且已經有大型查詢的結果,它可能會更有效率。 – 2013-04-30 13:39:34

回答

8

,如果你只是想產生不是試圖聯合查詢

SELECT id,name,Country FROM dbo.Europe 
UNION 
SELECT id,name,Country FROM dbo.USA 
+0

AAAARGH工會選擇!謝謝Bhavin:D – BeNdErR 2013-04-30 13:45:48

+2

爲了性能目的,我建議'UNION ALL'(假設國家不能在多個表中)。爲了完整起見,這裏是一個小提琴演示你的解決方案。 http://sqlfiddle.com/#!5/fe7a0/1 – GarethD 2013-04-30 13:49:46

+0

@GarethD爲什麼結果顯示歐洲人來自美國國家? – BeNdErR 2013-04-30 14:09:00

3

您可以創建工會的可重複使用的視圖,像這樣:

create view allcountries as select * from usa union select * from world; 

(命名爲任何你代替allcountries等)

然後只是:

select * from allcountries;