MariaDB में, UNION
ऑपरेटर एकाधिक SELECT
. से परिणामों को जोड़ता है एक ही परिणाम सेट में बयान।
सिंटैक्स
आधिकारिक वाक्य रचना इस प्रकार है:
SELECT ...
UNION [ALL | DISTINCT] SELECT ...
[UNION [ALL | DISTINCT] SELECT ...]
[ORDER BY [column [, column ...]]]
[LIMIT {[offset,] row_count | row_count OFFSET offset}]
मारियाडीबी 10.4.0 से, कोष्ठकों का उपयोग पूर्वता निर्दिष्ट करने के लिए किया जा सकता है।
उदाहरण
मान लीजिए कि हमारे पास निम्नलिखित टेबल हैं:
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 | +-------------+ | Warren | | Ben | | Cathy | | Bill | | Faye | | Jet | | Spike | | Ein | +-------------+ 8 rows in set (0.003 sec)
डिफ़ॉल्ट रूप से, UNION
ऑपरेटर परोक्ष रूप से एक DISTINCT
लागू करता है कार्यवाही। दूसरे शब्दों में, यह डिफ़ॉल्ट रूप से केवल विशिष्ट मान देता है। तो उपरोक्त परिणामों में वॉरेन, कैथी और बिल में से केवल एक-एक है। यह इस तथ्य के बावजूद है कि संयुक्त तालिकाओं में वास्तव में दो वॉरेन, दो कैथिस और तीन बिल होते हैं (कैथी नामक दो शिक्षक हैं, एक शिक्षक और वॉरेन नामक एक ग्राहक, और दो को बिल कहा जाता है, साथ ही एक छात्र जिसे बिल कहा जाता है)।
यहां एक उदाहरण दिया गया है जो स्पष्ट रूप से DISTINCT
. का उपयोग करता है ऑपरेटर:
SELECT TeacherName FROM Teachers
UNION DISTINCT
SELECT StudentName FROM Students;
परिणाम:
+-------------+ | TeacherName | +-------------+ | Warren | | Ben | | Cathy | | Bill | | Faye | | Jet | | Spike | | Ein | +-------------+ 8 rows in set (0.004 sec)
तो हमें वही परिणाम मिलता है जो हमें DISTINCT
. के बिना मिला था ऑपरेटर।
डुप्लिकेट शामिल करें
हम 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 in set (0.002 sec)
इस बार हमें आठ के बजाय बारह पंक्तियाँ मिलीं जो हमें अपने पहले उदाहरण में मिली थीं।
हम देख सकते हैं कि दोनों कैथी वापस आ गए और तीनों बिल वापस कर दिए गए।