मेरे पास चार सारणीएं हैं जो बिल्कुल समान कॉलम हैं, और सभी चारों पर एक दृश्य बनाना चाहते हैं, इसलिए मैं उन्हें एक साथ पूछ सकता हूं।एक ही कॉलम वाले कई टेबलों पर देखें
क्या यह संभव है?
मेरे पास चार सारणीएं हैं जो बिल्कुल समान कॉलम हैं, और सभी चारों पर एक दृश्य बनाना चाहते हैं, इसलिए मैं उन्हें एक साथ पूछ सकता हूं।एक ही कॉलम वाले कई टेबलों पर देखें
क्या यह संभव है?
का उपयोग करें, आप एक दृश्य उन सभी का मिलन है कि बनाना चाहते हैं टेबल।
कुछ निम्नलिखित की तरह काम करना चाहिए, लेकिन मेरे एसक्यूएल जंग लगी है:
(CREATE VIEW view_name AS
(SELECT * FROM table1
UNION
SELECT * FROM table2
UNION
SELECT * FROM table3));
यूनियन का उपयोग एकाधिक चयन विवरणों से परिणाम को एक परिणाम परिणाम में गठबंधन करने के लिए किया जाता है। –
उपयोग संघ (थकाऊ कारणों के लिए मैं उन्हें गठबंधन करने के लिए जो इस अप्रासंगिक बनाना होगा! नहीं/अनुमति नहीं कर रहा हूँ कर सकते हैं)। Here is explanation
यह मानते हुए कि एक ही स्तंभ नाम होने के अलावा में, एक ही के कॉलम में एक ही डेटा शामिल संघ बयान
select * from table1
union
select * from table2
union
select * from table3
आप कर सकते हैं यदि आप संघ उन्हें (मैं कुछ सूचक सहित सुझाव है कि कौन-कौन तालिका प्रत्येक रिकॉर्ड से आया है):
select table1.column1, 1 as TableNumber
from table1
union
select table2.column1, 2 as TableNumber
from table2
.. etc ..
यह ध्यान देने योग्य हो सकता है कि आपको अनन्य पंक्तियों को संरक्षित करने के लिए "यूनियन ऑल" का उपयोग करने की आवश्यकता हो सकती है जो तालिकाओं में से एक से अधिक में मौजूद हो सकती है। एक मानक संघ डुप्लीकेट हटा देगा।
धन्यवाद - यह देखने का प्रयास कर रहा था कि कुछ पंक्तियों को क्यों हटाया जा रहा था। यह लाभप्रद है। –
यूनियन की बजाय, यूनियन सभी का उपयोग करें, जब तक कि आप विशेष रूप से डुप्लिकेट पंक्तियों को बाहर नहीं करना चाहते। यूनियन को अपने आप को निष्पादित करने में अधिक समय लगता है (जिस तरह से यह डुप्लिकेट ढूंढता है), और डुप्लिकेट पंक्तियों को हटा देता है।
आपकी क्वेरी से यह कहना मुश्किल है कि क्या आप यूनियन के आधार पर डेटा को वापस आने की उम्मीद करते हैं, या दृश्यमान रूप से कॉलम वाले दृश्य के रूप में। यह स्पष्ट रूप से एक प्रभाव है।
निम्न नमूना पर विचार करें:
TableA
ID Name RelatedID
1 John 2
2 Paul 1
TableB
ID Name RelatedID
1 Ringo 1
2 George 1
TableC
ID Name RelatedID
1 Bob 1
TableD
ID Name RelatedID
1 Kate NULL
अब, यह के खिलाफ निम्न क्वेरी चलाएँ: TableB संघ से सभी चयन
चयन आईडी, से TableA यूनिअन नाम सभी चयन ID, नाम आईडी, टैबसी यूनियन सभी चयन आईडी, तालिका
से परिणाम निम्नलिखित आउटपुट में:
1 John
2 Paul
1 Ringo
2 George
1 Bob
1 Kate
क्या यह आप के बाद क्या है? यदि ऐसा है, तो आप एक यूनियन क्वेरी का उपयोग करते हैं।
अब, अगर प्रभाव आप के बाद कर रहे हैं संबंधित डेटा के एक असतत देखने के लिए है, तो आप कुछ इस तरह करने की जरूरत हो सकता है:
SELECT A.ID MasterID, A.Name MasterName,
B.ID BandID, B.Name BandName,
C.ID BlackadderID, C.Name BlackadderName
D.ID BlackadderRealID, D.Name BlackadderRealName
FROM
TableA A
INNER JOIN
TableB B
ON
A.RelatedID = B.ID
INNER JOIN
TableC C
ON
B.RelatedID = C.ID
INNER JOIN
TableD D
ON
C.RelatedID = D.ID
इस डेटा का निम्न दृश्य में परिणाम होगा:
MasterID MasterName BandID BandName BlackAdderID BlackAdderName BlackadderRealID BlackadderRealName
1 John 2 George 1 Bob 1 Kate
2 Paul 1 Ringo 1 Bob 1 Kate
आप किस डेटाबेस सर्वर का उपयोग कर रहे हैं? – ysth
मुझे आपके सटीक सेटअप के बारे में निश्चित नहीं है, लेकिन यदि आपके पास 4 डुप्लिकेट टेबल हैं जो आप एक संघ के साथ पूछना चाहते हैं, तो एक प्रकार की कॉलम वाली एक तालिका अधिक समझ में आ सकती है। बेशक सिस्टम पहले से मौजूद है या अन्य कारक हैं। –