2013-04-30 8 views
5

मुझे एक दृश्य (या एक तालिका) बनाने की आवश्यकता है जिसमें एन पंक्ति मान हैं, जो दो अलग-अलग तालिकाओं से ली गई हैं, जिनकी संरचना समान है। उदाहरण के लिए:एसक्यूएल - एक तालिका में दो टेबल सामग्री मर्ज करें/देखें

तालिका यूरोप

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

तालिका संयुक्त राज्य अमेरिका

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

मर्ज किए गए दृश्य इस तरह हो गया है:

तालिका वर्ल्ड

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

यह संभव है? अगर यह है, कैसे?

आपकी मदद के लिए अग्रिम धन्यवाद, सादर

+1

आप टेबल/व्यू क्यों बनाना चाहते हैं? आपको बस सरल एसक्यूएल क्वेरी –

+1

@BavinChauhan द्वारा परिणाम मिला है यदि यह एक बड़े डेटासेट पर एक सामान्य रूप से अनुरोध किया गया दृश्य है, तो यह संभवतः अधिक कुशल हो सकता है अगर उसके पास पहले से ही बड़ी क्वेरी के परिणामस्वरूप कोई दृश्य या तालिका हो। –

उत्तर

8

तुम सिर्फ से संघ क्वेरी

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

AAARGH संघ का चयन करें! धन्यवाद भाविन: डी – BeNdErR

+2

मैं प्रदर्शन उद्देश्यों के लिए 'यूनियन ऑल' की सलाह दूंगा (माना जाता है कि देश एक से अधिक टेबल में नहीं हो सकते हैं)। और यहां पूर्णता के लिए आपके समाधान का प्रदर्शन करने के लिए एक पहेली है। http://sqlfiddle.com/#!5/fe7a0/1 – GarethD

+0

@GarethD परिणाम यूरोपीय देशों के रूप में यूरोपीय लोगों को क्यों दिखाता है? – BeNdErR

3

कोशिश तुम इतनी तरह यूनियन का एक पुन: प्रयोज्य दृश्य बना सकते हैं परिणाम करना चाहते हैं:

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

(allcountries के स्थान पर आपको जो कुछ भी पसंद है उसे नाम दें)

तब बस:

select * from allcountries; 
संबंधित मुद्दे