2013-04-30 20 views
5

Tôi cần tạo chế độ xem (hoặc bảng) chứa n giá trị hàng, được lấy từ hai bảng khác nhau có cùng cấu trúc. Ví dụ:SQL - hợp nhất hai bảng nội dung trong một bảng/xem

bảng châu Âu

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

bảng USA

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

Quan điểm sáp nhập phải là như thế này:

bảng THẾ GIỚI

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

nó có thể? nếu nó là, làm thế nào?

Cảm ơn trước sự giúp đỡ của bạn, Trân trọng

+1

lý do bạn muốn tạo bảng/chế độ xem? bạn chỉ nhận được kết quả bằng truy vấn sql đơn giản –

+1

@BhavinChauhan Nếu đó là chế độ xem thường được yêu cầu trên tập dữ liệu lớn, điều đó có thể hiệu quả hơn nếu anh ta chỉ có chế độ xem hoặc bảng với kết quả của truy vấn lớn. –

Trả lời

8

nếu bạn chỉ muốn dẫn hơn cố gắng đoàn truy vấn

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

AAAARGH union chọn! cảm ơn Bhavin: D – BeNdErR

+2

Tôi muốn tư vấn cho 'UNION ALL' cho mục đích thực hiện (giả sử các quốc gia không thể có nhiều hơn một bảng). Và vì lợi ích của sự hoàn chỉnh ở đây là một Fiddle để chứng minh giải pháp của bạn. http://sqlfiddle.com/#!5/fe7a0/1 – GarethD

+0

@GarethD tại sao kết quả cho thấy người châu Âu đến từ nước Mỹ? – BeNdErR

3

Bạn có thể tạo một cái nhìn thể tái sử dụng của công đoàn như sau:

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

(đặt tên cho bất kỳ thứ gì bạn thích thay cho allcountries)

rồi chỉ cần:

select * from allcountries;