यूनियन MySQL में एक प्रकार का ऑपरेटर है। हम रिकॉर्ड्स को फ़िल्टर करने के लिए इसके साथ ORDER BY का उपयोग कर सकते हैं। यदि आप कई टेबल्स से या एक ही टेबल से पंक्तियों के कई सेट्स को एकल परिणाम सेट के रूप में एक के बाद एक चुनना चाहते हैं तो UNION का उपयोग करें।
आइए एक उदाहरण देखते हैं।
पहली टेबल बनाना
mysql> create table UnionDemo1 -> ( -> id int -> ); Query OK, 0 rows affected (0.59 sec)
पहली टेबल में रिकॉर्ड्स डालना।
mysql> insert into UnionDemo1 values(1),(4),(10); Query OK, 3 rows affected (0.21 sec) Records: 3 Duplicates: 0 Warnings: 0
सभी रिकॉर्ड्स प्रदर्शित करने के लिए।
mysql> select *from UnionDemo1;
निम्नलिखित आउटपुट सभी रिकॉर्ड्स प्रदर्शित करता है।
+------+ | id | +------+ | 1 | | 4 | | 10 | +------+ 3 rows in set (0.00 sec)
आइए दूसरी टेबल बनाते हैं।
mysql> create table UnionDemo2 -> ( -> id int -> ); Query OK, 0 rows affected (0.54 sec)
दूसरी टेबल में रिकॉर्ड्स डालना।
mysql> insert into UnionDemo2 values(2),(3),(5),(6),(7),(8),(9); Query OK, 7 rows affected (0.21 sec) Records: 7 Duplicates: 0 Warnings: 0
सभी रिकॉर्ड्स प्रदर्शित करने के लिए।
mysql> select *from UnionDemo2;
यहां आउटपुट है।
+------+ | id | +------+ | 2 | | 3 | | 5 | | 6 | | 7 | | 8 | | 9 | +------+ 7 rows in set (0.00 sec)
आइए अब ORDER BY के साथ UNION लागू करने की क्वेरी देखते हैं।
mysql> select id from UnionDemo1 -> union -> select id from UnionDemo2 -> order by id desc;
निम्नलिखित आउटपुट है।
+------+ | id | +------+ | 10 | | 9 | | 8 | | 7 | | 6 | | 5 | | 4 | | 3 | | 2 | | 1 | +------+ 10 rows in set (0.05 sec)
महत्वपूर्ण:UNIONडिफ़ॉल्ट रूप से डुप्लिकेट हटाता है (जैसेDISTINCT)। डुप्लिकेट रखने के लिएUNION ALLका उपयोग करें - यह तेज़ भी है।ORDER BYपूरे UNION परिणाम पर लागू होता है; व्यक्तिगत SELECT में ORDER BY लागू करने के लिए कोष्ठक का उपयोग करें:(SELECT ... ORDER BY ...) UNION (SELECT ... ORDER BY ...)।