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

MySQL में दो अलग-अलग टेबल के कॉलम को UNION और ORDER BY के साथ चुनें

MySQL UNION: दो टेबल के कॉलम को संयोजित करके सॉर्ट करना

UNION ऑपरेटर दो या अधिक SELECT स्टेटमेंट के परिणामों को संयोजित करता है। डिफॉल्ट रूप से यह डुप्लिकेट हटा देता है और परिणाम को सॉर्ट नहीं करता — ORDER BY का उपयोग करके सॉर्ट करें।

उदाहरण: Amount और Price कॉलम को संयोजित करें

पहली टेबल:

CREATE TABLE DemoTable1 (Amount INT);
INSERT INTO DemoTable1 VALUES (234), (567), (134);

दूसरी टेबल:

CREATE TABLE DemoTable2 (Price INT);
INSERT INTO DemoTable2 VALUES (134), (775), (121), (882);

UNION के साथ ORDER BY

SELECT DISTINCT Amount FROM DemoTable1 
UNION 
SELECT DISTINCT Price FROM DemoTable2 
ORDER BY Amount;

परिणाम:

+--------+
| Amount |
+--------+
| 121    |
| 134    |
| 234    |
| 567    |
| 775    |
| 882    |
+--------+

महत्वपूर्ण बिंदु

  • UNION — डुप्लिकेट हटाता है (यहां 134 दोनों टेबल में है, एक बार दिखा)
  • UNION ALL — डुप्लिकेट रखता है, तेज होता है
  • ORDER BY — अंत में लगाएं, यह संपूर्ण परिणाम पर लागू होता है
  • कॉलम नाम पहली SELECT से लिए जाते हैं
  • दोनों SELECT में कॉलम की संख्या और प्रकार संगत होने चाहिए

कॉलम नाम अलग हों तो

SELECT Amount AS Value FROM DemoTable1
UNION
SELECT Price AS Value FROM DemoTable2
ORDER BY Value;

प्रदर्शन टिप

यदि डुप्लिकेट की परवाह नहीं या आप जानते हैं कि डुप्लिकेट नहीं हैं, तो UNION ALL उपयोग करें — यह काफी तेज है क्योंकि डुप्लिकेट हटाने का ओवरहेड नहीं होता।

  1. - MySQL में CONCAT और JOIN से अलग टेबल के कॉलम जोड़ें

    MySQL में CONCAT() फ़ंक्शन और JOIN का उपयोग करके अलग-अलग टेबल के कॉलम मानों को जोड़ सकते हैं। उदाहरण: पहला नाम + अंतिम नाम = पूरा नाम 1. पहली टेबल (पहला नाम) SELECT * FROM DemoTable1; +-----------+ | FirstName | +-----------+ | Chris | | David | +-----------+ 2. दूसरी टेबल (अंतिम नाम) S

  1. - MySQL में दो अलग-अलग कॉलम का उपयोग करके कस्टम सॉर्टिंग कैसे करें?

    MySQL में ORDER BY के साथ CASE स्टेटमेंट का उपयोग करके दो कॉलम के आधार पर कस्टम क्रमबद्धीकरण (custom sorting) किया जा सकता है। उदाहरण परिदृश्य पहले अंकों (Marks) के अनुसार क्रमबद्ध करें, समान अंकों के लिए Carol को John से पहले रखें। तालिका और डेटा mysql> CREATE TABLE DemoTable (Marks INT, Name

  1. - MySQL में GROUP_CONCAT और CASE से अलग शर्तों वाले समान कॉलम के मान जोड़ें

    एक ही कॉलम (Name) की अलग-अलग शर्तों (Subject) के मानों को जोड़ने के लिए CASE के साथ सशर्त एग्रीगेशन और CONCAT या GROUP_CONCAT का उपयोग करें। टेबल बनाएं mysql> CREATE TABLE DemoTable1869 ( Id INT, Subject VARCHAR(20), Name VARCHAR(20) ); डेटा डालें mysql> INSERT INTO DemoTable1869 VALUES(