PostgreSQL में, UNION
ऑपरेटर एकाधिक प्रश्नों के परिणामों को एक परिणाम सेट में जोड़ता है।
सिंटैक्स
आधिकारिक वाक्य रचना इस प्रकार है:
query1 UNION [ALL] query2
UNION
ऑपरेटर query2
. का परिणाम जोड़ता है query1
. के परिणाम के लिए (हालांकि इस बात की कोई गारंटी नहीं है कि यह वह क्रम है जिसमें पंक्तियों को वास्तव में वापस किया जाता है)।
जब तक UNION ALL
. न हो, डुप्लीकेट पंक्तियां हटा दी जाती हैं उपयोग किया जाता है।
उदाहरण
मान लीजिए कि हमारे पास निम्नलिखित टेबल हैं:
SELECT * FROM Teachers;
SELECT * FROM Students;
परिणाम:
teacherid | teachername -----------+------------- 1 | Warren 2 | Ben 3 | Cathy 4 | Cathy 5 | Bill 6 | Bill studentid | studentname -----------+------------- 1 | Faye 2 | Jet 3 | Spike 4 | Ein 5 | Warren 6 | Bill
हम UNION
. का उपयोग कर सकते हैं सभी शिक्षकों और छात्रों को वापस करने के लिए ऑपरेटर:
SELECT TeacherName FROM Teachers
UNION
SELECT StudentName FROM Students;
परिणाम:
teachername ------------- Spike Ben Ein Cathy Jet Faye Bill Warren (8 rows)
डिफ़ॉल्ट रूप से, UNION
ऑपरेटर परोक्ष रूप से एक DISTINCT
लागू करता है कार्यवाही। दूसरे शब्दों में, यह डिफ़ॉल्ट रूप से केवल विशिष्ट मान देता है। तो उपरोक्त परिणामों में वॉरेन, कैथी और बिल में से केवल एक-एक है। यह इस तथ्य के बावजूद है कि संयुक्त तालिकाओं में वास्तव में दो वॉरेन, दो कैथिस और तीन बिल होते हैं (कैथी नामक दो शिक्षक हैं, एक शिक्षक और वॉरेन नामक एक ग्राहक, और दो को बिल कहा जाता है, साथ ही एक छात्र जिसे बिल कहा जाता है)।
यहां एक उदाहरण दिया गया है जो स्पष्ट रूप से DISTINCT
. का उपयोग करता है ऑपरेटर:
SELECT TeacherName FROM Teachers
UNION DISTINCT
SELECT StudentName FROM Students;
परिणाम:
teachername ------------- Spike Ben Ein Cathy Jet Faye Bill Warren (8 rows)
वही परिणाम।
डुप्लिकेट शामिल करें
हम ALL
का उपयोग कर सकते हैं परिणामों में डुप्लीकेट मान शामिल करने के लिए कीवर्ड:
SELECT TeacherName FROM Teachers
UNION ALL
SELECT StudentName FROM Students;
परिणाम:
teachername ------------- Warren Ben Cathy Cathy Bill Bill Faye Jet Spike Ein Warren Bill (12 rows)
इस बार हमें आठ के बजाय बारह पंक्तियाँ मिलीं जो हमें अपने पहले उदाहरण में मिली थीं।
हम देख सकते हैं कि दोनों कैथी वापस आ गए और तीनों बिल वापस कर दिए गए।