अधिकांश SQL क्वेरीज़ एक एकल कथन का उपयोग करती हैं जो एक या अधिक तालिकाओं से डेटा लौटाता है। SQL आपको एक ही समय में कई अलग-अलग क्वेरी चलाने और परिणाम को एकल डेटा सेट के रूप में प्रदर्शित करने की भी अनुमति देता है। ऐसी संयुक्त क्वेरीज़ को आमतौर पर जॉइन्स या कॉम्प्लेक्स क्वेरीज़ कहा जाता है।
SQL क्वेरीज़ को UNION ऑपरेटर का उपयोग करके संयोजित किया जाता है। ऐसा करने के लिए, आपको प्रत्येक अनुरोध को SELECT निर्दिष्ट करना होगा और उनके बीच कीवर्ड UNION रखना होगा। एक सामान्य क्वेरी में UNION ऑपरेटर के उपयोग की संख्या की कोई सीमा नहीं है। पिछले अनुभाग में हमने नोट किया था कि MS Access में पूर्ण बाहरी यूनियन बनाने की क्षमता नहीं है, अब हम देखेंगे कि इसे UNION ऑपरेटर के माध्यम से कैसे प्राप्त किया जा सकता है।
Run SQLSELECT *
FROM Sumproduct
LEFT JOIN Sellers2
ON Sumproduct.City = Sellers2.City
UNION
SELECT *
FROM Sumproduct
RIGHT JOIN Sellers2
ON Sumproduct.City = Sellers2.City
हम देखते हैं कि क्वेरी ने पहली तालिका और दूसरी तालिका से सभी कॉलम प्रदर्शित किए हैं, भले ही सभी रिकॉर्ड के समकक्ष किसी अन्य तालिका में हों।
यह भी ध्यान देने योग्य है कि कई मामलों में, UNION के बजाय, हम कई शर्तों के साथ WHERE क्लॉज का उपयोग कर सकते हैं, और एक समान परिणाम प्राप्त कर सकते हैं। हालाँकि, UNION के माध्यम से, रिकॉर्ड अधिक संक्षिप्त और स्पष्ट दिखते हैं।
संयुक्त प्रश्न लिखते समय कुछ नियमों का पालन करना भी आवश्यक है:
UNION वाली क्वेरी स्वचालित रूप से क्वेरी परिणाम सेट से सभी डुप्लिकेट पंक्तियों को हटा देती है (दूसरे शब्दों में, एक SELECT कथन में एकाधिक शर्तों के साथ WHERE क्लॉज की तरह व्यवहार करती है)। यह UNION ऑपरेटर का डिफ़ॉल्ट व्यवहार है, लेकिन हम चाहें तो इसे बदल सकते हैं। इसके लिए हमें UNION के बजाय ऑपरेटर UNION ALL का उपयोग करना चाहिए।
SELECT कथन के परिणाम ORDER BY कथन का उपयोग करके क्रमबद्ध किए जाते हैं। UNION का उपयोग करके प्रश्नों को संयोजित करते समय, केवल एक ORDER BY क्लॉज का उपयोग किया जा सकता है, और इसे अंतिम SELECT कथन में रखा जाना चाहिए। दरअसल, व्यवहार में, परिणामों के एक हिस्से को एक क्रम में और दूसरे हिस्से को दूसरे क्रम में क्रमबद्ध करने का कोई मतलब नहीं है। इसलिए, एकाधिक वाक्य ORDER BY की अनुमति नहीं है।