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 t1
LEFT JOIN t2 ON t1.id = t2.id
UNION ALL
SELECT * FROM t1
RIGHT JOIN t2 ON t1.id = t2.id
WHERE t1.id IS NULL
उपरोक्त क्वेरी डुप्लिकेट पंक्तियों को भी लौटाएगी, यदि कोई हो। यदि आप पूर्ण बाहरी जुड़ाव में डुप्लिकेट रिकॉर्ड नहीं चाहते हैं, तो इसके बजाय निम्न क्वेरी का उपयोग करें।
SELECT * FROM t1
LEFT JOIN t2 ON t1.id = t2.id
UNION
SELECT * FROM t1
RIGHT 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 मिनटों में डेटा की कल्पना करना और रीयल-टाइम डैशबोर्ड में मॉनिटर करना आसान बनाता है। इसे आज ही आजमाएं!