MariaDB
 sql >> डेटाबेस >  >> RDS >> MariaDB

मारियाडीबी यूनियन ऑपरेटर ने समझाया

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)

इस बार हमें आठ के बजाय बारह पंक्तियाँ मिलीं जो हमें अपने पहले उदाहरण में मिली थीं।

हम देख सकते हैं कि दोनों कैथी वापस आ गए और तीनों बिल वापस कर दिए गए।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मारियाडीबी फ्लोर () बनाम ट्रंकेट ()

  2. मारियाडीबी में एलटीआरआईएम () कैसे काम करता है

  3. कैसे DATE () मारियाडीबी में काम करता है

  4. मारियाडीबी JSON_LOOSE () समझाया गया

  5. मारियाडीबी में FROM_UNIXTIME () कैसे काम करता है