Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में कई एडवांस SELECT क्वेरी को कैसे संयोजित करें?

MySQL में UNION का उपयोग करके एकाधिक SELECT क्वेरी संयोजित करना

एक से अधिक टेबल या जटिल शर्तों से डेटा को एक ही परिणाम सेट में संयोजित करने के लिए UNION ऑपरेटर का उपयोग करें। यह डुप्लिकेट पंक्तियों को स्वचालित रूप से हटा देता है (अगर UNION ALL न उपयोग किया जाए)।

उदाहरण के साथ पूर्ण कार्यान्वयन

पहली टेबल बनाना और डेटा डालना

mysql> CREATE TABLE DemoTable1 (Value1 INT, Value2 INT);
mysql> INSERT INTO DemoTable1 VALUES(10, 29), (100, 190), (40, 101);

दूसरी टेबल बनाना और डेटा डालना

mysql> CREATE TABLE DemoTable2 (Number1 INT, Number2 INT);
mysql> INSERT INTO DemoTable2 VALUES(100, 290), (200, 390), (50, 170);

दोनों टेबल के रिकॉर्ड देखना

mysql> SELECT * FROM DemoTable1;
mysql> SELECT * FROM DemoTable2;

UNION के साथ क्वेरी संयोजित करना

mysql> (SELECT Value1, Value2 FROM DemoTable1)
UNION
(SELECT Number1 AS Value1, Number2 AS Value2 FROM DemoTable2)
ORDER BY Value1 DESC;

आउटपुट:

+--------+--------+
| Value1 | Value2 |
+--------+--------+
| 200    | 390    |
| 100    | 290    |
| 100    | 190    |
| 50     | 170    |
| 40     | 101    |
| 10     | 29     |
+--------+--------+
6 rows in set (0.04 sec)

मुख्य बिंदु:

  • कॉलम संरेखण: दोनों SELECT में समान संख्या और क्रम में कॉलम होने चाहिए
  • एलियास: दूसरी क्वेरी में AS Value1, AS Value2 का उपयोग करके कॉलम नाम मिलाए गए
  • डुप्लिकेट हटाना: UNION स्वचालित रूप से डुप्लिकेट पंक्तियाँ हटाता है
  • ORDER BY: अंत में लागू होता है, व्यक्तिगत SELECT पर नहीं

UNION vs UNION ALL

ऑपरेटरव्यवहारप्रदर्शन
UNIONडुप्लिकेट हटाता हैधीमा (सॉर्ट/हैश आवश्यक)
UNION ALLसभी पंक्तियाँ रखता हैतेज़ (कोई डुप्लिकेट जांच नहीं)

उन्नत उपयोग: जटिल क्वेरी संयोजन

(SELECT id, name, 'active' AS status FROM users WHERE active = 1)
UNION ALL
(SELECT id, name, 'inactive' FROM users WHERE active = 0)
UNION ALL
(SELECT id, name, 'pending' FROM users WHERE active IS NULL)
ORDER BY status, name;

यह विभिन्न शर्तों के परिणामों को एकीकृत परिणाम सेट में जोड़ता है।

  1. - MySQL में एकाधिक टेक्स्ट रिकॉर्ड को एक में कैसे संयोजित करें?

    MySQL में GROUP_CONCAT() फ़ंक्शन का उपयोग करके एकाधिक पंक्तियों के टेक्स्ट मानों को एक स्ट्रिंग में जोड़ा जा सकता है। कस्टम विभाजक भी निर्दिष्ट किया जा सकता है। सिंटैक्स GROUP_CONCAT(column_name [SEPARATOR separator_string]) उदाहरण तालिका बनाएं और शब्द डालें: mysql> CREATE TABLE DemoTable (Valu

  1. - MySQL में UPDATE SET से एकल कॉलम अपडेट करने का सर्वोत्तम तरीका

    MySQL टेबल में एकल कॉलम के सभी मानों को अपडेट करने के लिए UPDATE और SET का उपयोग करें। टेबल बनाएं mysql> CREATE TABLE DemoTable1873 ( Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, FirstName VARCHAR(20) ); डेटा डालें mysql> INSERT INTO DemoTable1873(FirstName) VALUES(John), (Adam), (Dav

  1. - MySQL में अल्पविराम-पृथक सूची में स्ट्रिंग और अगला अक्षर खोजने के लिए रेगेक्स

    समाधान REGEX के बजाय FIND_IN_SET() फंक्शन का उपयोग करें, जो अल्पविराम-पृथक सूची के लिए बनाया गया है। सिंटैक्स SELECT * FROM yourTableName WHERE FIND_IN_SET(anyValue, yourColumnName); उदाहरण टेबल बनाएं: INSERT INTO demo17 (first_name, value) VALUES (John,50), (David,), (Adam,50,89), (Adam,49,89,43