2013-04-30 19 views
5

Potrzebuję utworzyć widok (lub tabelę) zawierający n wartości wierszy, pobranych z dwóch różnych tabel o tej samej strukturze. Na przykład:SQL - scalanie dwóch tabel w jedną tabelę/widok

stół Europy

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

tabela USA

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

Połączony widok musi być tak:

stół WORLD

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

to możliwe? jeśli tak, to w jaki sposób?

Z góry dzięki za pomoc, pozdrawiam

+1

dlaczego chcesz utworzyć tabelę/widok? otrzymałeś wynik przez proste zapytanie sql –

+1

@BhavinChauhan Jeśli jest to często żądany widok na dużym zestawie danych, może to być bardziej wydajne, jeśli ma już tylko widok lub tabelę z wynikiem dużego zapytania. –

Odpowiedz

8

jeśli chcesz po prostu spowodować niż próbować zapytanie unia

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

Unia AAA wybierz! dzięki Bhavin: D – BeNdErR

+2

Doradzam 'UNION ALL' dla celów wydajności (zakładając, że kraje nie mogą być w więcej niż jednej tabeli). A dla zapewnienia kompletności, tutaj jest Fiddle, aby zademonstrować twoje rozwiązanie. http://sqlfiddle.com/#!5/fe7a0/1 – GarethD

+0

@GarethD dlaczego wynik pokazuje Europejczyków z USA? – BeNdErR

3

Można utworzyć wielokrotnego użytku widzenia Unii tak:

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

(Nazwij to, co lubisz zamiast allcountries)

następnie wystarczy:

select * from allcountries;