PostgreSQL, और SQL सर्वर जैसे अन्य डेटाबेस के विपरीत, MySQL बॉक्स से बाहर पूर्ण बाहरी जुड़ाव का समर्थन नहीं करता है। तो आपको अन्य जॉइन प्रकारों जैसे लेफ्ट जॉइन एड राइट जॉइन के संयोजन का उपयोग करके पूर्ण बाहरी जॉइन करने की आवश्यकता होगी जो MySQL में समर्थित हैं। इस लेख में, हम देखेंगे कि MySQL में एक पूर्ण बाहरी जुड़ाव कैसे होता है।
MySQL में एक पूर्ण बाहरी जुड़ाव कैसे करें
यहाँ MySQL में एक पूर्ण बाहरी जुड़ाव करने के चरण दिए गए हैं।
मान लें कि आपके पास निम्नलिखित दो टेबल हैं बिक्री और आदेश ।
mysql> select * from sales; +------+---------------------+--------+ | id | order_date | amount | +------+---------------------+--------+ | 1 | 2021-02-02 08:15:00 | 250 | | 2 | 2021-02-02 08:30:00 | 200 | | 3 | 2021-02-02 08:55:00 | 150 | | 4 | 2021-02-02 09:15:00 | 125 | | 5 | 2021-02-02 09:30:00 | 250 | | 6 | 2021-02-02 09:45:00 | 200 | | 7 | 2021-02-02 10:15:00 | 180 | | 8 | 2021-02-02 10:30:00 | 125 | | 9 | 2021-02-02 10:45:00 | 200 | | 10 | 2021-02-02 11:15:00 | 250 | | 11 | 2021-02-02 11:30:00 | 150 | | 12 | 2021-02-02 11:45:00 | 200 | +------+---------------------+--------+ mysql> select * from orders; +------+------------+--------+ | id | order_date | amount | +------+------------+--------+ | 5 | 2021-01-28 | 250 | | 6 | 2021-01-29 | 250 | | 7 | 2021-01-30 | 250 | | 8 | 2021-01-31 | 250 | | 9 | 2021-02-01 | 250 | +------+------------+--------+
यहाँ तालिकाओं के बीच MySQL में एक पूर्ण बाहरी जुड़ाव करने के लिए सामान्य वाक्य रचना है t1 और t2 जॉइन फ़ील्ड आईडी . पर आधारित है . आप अपनी आवश्यकता के अनुसार तालिका के नाम अपडेट कर सकते हैं और फ़ील्ड में शामिल हो सकते हैं।
SELECT * FROM t1LEFT JOIN t2 ON t1.id = t2.idUNION ALLSELECT * FROM t1RIGHT JOIN t2 ON t1.id = t2.idWHERE t1.id IS NULL
उपरोक्त क्वेरी डुप्लिकेट पंक्तियों को भी लौटाएगी, यदि कोई हो। यदि आप पूर्ण बाहरी जुड़ाव में डुप्लिकेट रिकॉर्ड नहीं चाहते हैं, तो इसके बजाय निम्न क्वेरी का उपयोग करें।
SELECT * FROM t1LEFT JOIN t2 ON t1.id = t2.idUNIONSELECT * FROM t1RIGHT JOIN t2 ON t1.id = t2.id
टेबल बिक्री . के बीच एक पूर्ण बाहरी जुड़ाव करने के लिए SQL क्वेरी यहां दी गई है और आदेश ।
mysql> SELECT * FROM sales
LEFT JOIN orders ON sales.id = orders.id
UNION ALL
SELECT * FROM sales
RIGHT JOIN orders ON sales.id = orders.id
WHERE sales.id IS NULL ;
+------+---------------------+--------+------+------------+--------+
| id | order_date | amount | id | order_date | amount |
+------+---------------------+--------+------+------------+--------+
| 5 | 2021-02-02 09:30:00 | 250 | 5 | 2021-01-28 | 250 |
| 6 | 2021-02-02 09:45:00 | 200 | 6 | 2021-01-29 | 250 |
| 7 | 2021-02-02 10:15:00 | 180 | 7 | 2021-01-30 | 250 |
| 8 | 2021-02-02 10:30:00 | 125 | 8 | 2021-01-31 | 250 |
| 9 | 2021-02-02 10:45:00 | 200 | 9 | 2021-02-01 | 250 |
| 1 | 2021-02-02 08:15:00 | 250 | NULL | NULL | NULL |
| 2 | 2021-02-02 08:30:00 | 200 | NULL | NULL | NULL |
| 3 | 2021-02-02 08:55:00 | 150 | NULL | NULL | NULL |
| 4 | 2021-02-02 09:15:00 | 125 | NULL | NULL | NULL |
| 10 | 2021-02-02 11:15:00 | 250 | NULL | NULL | NULL |
| 11 | 2021-02-02 11:30:00 | 150 | NULL | NULL | NULL |
| 12 | 2021-02-02 11:45:00 | 200 | NULL | NULL | NULL |
+------+---------------------+--------+------+------------+--------+ परिणाम में बिना किसी डुप्लिकेट पंक्तियों के पूर्ण बाहरी जुड़ाव करने के लिए SQL क्वेरी यहां दी गई है।
mysql> SELECT * FROM sales
LEFT JOIN orders ON sales.id = orders.id
UNION
SELECT * FROM sales
RIGHT JOIN orders ON sales.id = orders.id;
MySQL के लिए एक रिपोर्टिंग टूल की आवश्यकता है? Ubiq मिनटों में डेटा की कल्पना करना और रीयल-टाइम डैशबोर्ड में मॉनिटर करना आसान बनाता है। इसे आज ही आजमाएं!