MySQL Join
|MySQL Join, MySQL Inner Join, Outer Join, Left Join, Right Join, Cross Join, Natural Join, Self Join के बारे मे समझेंगे ।
जब भी हमे दो Table के डाटा को लिंक कर Data लाना होता हैं तब हमे Join Clause का उपयोग करना होता हैं । Table को Join करने के लिए कोई एक या एक से अधिक Column होते हैं जिनकी Base पर हम दो Table को Connect करते हैं । इस Article मे हम Join कितने प्रकार के होते हैं तथा हम उनको उपयोग कैसे कर सकते हैं इसके बारे मे Example सहित सीखेंगे ।
MySQL Join Types
MySQL Join Example
हम यहा पर दो टेबल बना रहे हैं, और दोनों टेबल को हम अलग-अलग join का उपयोग कर उसके Output को देखेंगे और सीखेंगे की Join किस तरह से काम करते हैं ।
Example मे पहली टेबल City Master हैं, दूसरी Table State मास्टर हैं । आप निम्न Command से दोनों Tables बना सकते हैं ।
MySQL को शुरुआत से सीखने के लिए SQL Logic Android App Free मे Download करे ।
CREATE TABLE `citymst` (
`city_id` int(5) NOT NULL AUTO_INCREMENT,
`city_nm` varchar(20) NOT NULL,
`state_id` int(5) NOT NULL,
PRIMARY KEY (`city_id`)
) ;
CREATE TABLE `statemst` (
`state_id` int(5) NOT NULL AUTO_INCREMENT,
`state_nm` varchar(20) NOT NULL,
PRIMARY KEY (`state_id`)
) ;
Table मे Data Enter करने के लिए आप निम्न SQL का उपयोग करे ।
INSERT INTO `citymst` (`city_id`, `city_nm`, `state_id`) VALUES
(1, 'Indore', '1'), (2, 'Ujjain', '1'), (3, 'Bhopal', '1'),
(4, 'Mumbai', '2'), (5, 'Varanasi', '3');
INSERT INTO `statemst`(`state_id`, `state_nm`) VALUES (1,'MP'), (2, 'MH'), (4, 'RJ');
उपरोक्त Data Table मे Insert होने के बाद कुछ इस तरह से दिखाई देगा, यदि आप data को देखेंगे तो पाएंगे की इसमे Citymst Table मे एक Column हैं जिसका नाम state_id हैं उस Column को हमने Statemst Table के state_id से लिंक किया है ,
- साथ मे हमने Citymst मे state_id मे 3 को Statemst मे नहीं रखा है ,
- और Statemst के state-id Column मे 4 को Citymst Table के state_id मे नहीं रखा हैं । अब इसी Example पर हम सभी Join समझेंगे ।
1. INNER JOIN
जब भी दो Tables को लिंक करते हैं और चाहते हैं दोनों table मे जो value match हो वही दिखाई दे तब हम Inner Join का उपयोग करते हैं यह एक तरह से Equal Join ही हैं ।
SELECT * FROM citymst a inner join statemst b on a.state_id = b.state_id order by city_id
2.1 LEFT JOIN
जब भी दो Tables को लिंक करते हैं और चाहते हैं और Left वाली table का सभी डाटा देखना चाहते हैं Right वाली Table के जो Record Match हो वह दिखे जो Match न हो वह नहीं दिखाई दे तब आप Left Join का उपयोग कर सकते हैं ।
SELECT * FROM citymst a left join statemst b on a.state_id = b.state_id
2.2 RIGHT JOIN
जब भी दो Tables को लिंक करते हैं और चाहते हैं और Right वाली table का सभी डाटा देखना चाहते हैं Left वाली Table के जो Record Match हो वह दिखे जो Match न हो वह नहीं दिखाई दे तब आप Right Join का उपयोग कर सकते हैं ।
SELECT * FROM citymst a right join statemst b on a.state_id = b.state_id
3. CROSS JOIN
जब भी आप दो Table को बिना किसी Key के Connect करते है तब उसे Cross Join कहा जाता हैं इस Result को Cartation Product भी कहते हैं । आइए आपको Cross Join से संबंधित कुछ पॉइंट्स बताते हैं ।
- यदि Cross Join मे on a.state_id = b.state_id इस प्रकार से लिखेंगे तब यह Inner Join जैसा कार्य करेगा ।
- Cross Join के output मे जो Records आते हैं वह (No of Records of Table A * No of Records of Table B) होते हैं । जैसा आप निम्न Example मे देखेंगे की Table A मे कुल Records 5 हैं और Table B मे 3 Records हैं तो 5X3 यानि की Output मे 15 Records आएंगे । इसे ही Cartation Product कहा गया हैं ।
SELECT * FROM citymst a CROSS join statemst b
4. NATURAL JOIN
Natural Join का उपयोग करने से आप जिन भी दो Table को लिंक कर रहे हैं उन्मे जो Common Columns वह केवल एक बार ही दिखाई देते हैं । और साथ मे आपको On Clause का उपयोग कर Link करने की जरूरत नहीं होती हैं । साथ मे आप Natural के साथ Left या Right का उपयोग कर सकते हैं ।
SELECT * FROM citymst a natural join statemst b;
SELECT * FROM citymst a natural left join statemst b;
SELECT * FROM citymst a natural right join statemst b;
जैसा की आप देख रहे होंगे की Natural Join का उपयोग करने से कुछ इस प्रकार के Changes रिजल्ट मे हुवे हैं ।
- Natural Join मे हमे On के Sath Column link की condition नहीं देना होती हैं ।
- Natural Join तब ही लगता हैं जब दोनों टेबल मे जिन Columns से लिंक करना हो उनके नाम एक जैसे हो और डाटा टाइप भी ।
- Natural Join से Result मे भी Common Column एक ही बार दिखाई देते हैं ।
- Natural Join के साथ left Right का उपयोग नहीं करने से यह Inner join से कार्य करता है ।
- Natural के साथ आप Left / Right Join का भी उपयोग कर सकते हैं ।
5. SELF JOIN
Self Join कोई Clause नहीं है, यह एक Concept हैं, जब आपके पास एक ही Table हो और खुद उसी टेबल से एक बार फिर खुद से ही लिंक करना हो तब हम Self Join Concept का उपयोग करते हैं । उपरोक्त Example मे हम Table a मे Citymst का उपयोग कर रहे थे और table b मे हम Statement का उपयोग कर दोनों को लिंक कर रहे थे , इसमे हम Table a और Table b मे दोनों मे ही एक ही Table का उपयोग करेंगे।
Example से समझने के लिए हमने Citymst Table मे ho_id एक Column और Add किया हैं जिसमे की हम जिस City मे Head Office हैं उसे Select करेंगे ।
ALTER TABLE `citymst` ADD `ho_id` INT(5) NOT NULL AFTER `state_id`;
UPDATE `citymst` SET `ho_id` = '1' WHERE city_id in (1, 2,3);
UPDATE `citymst` SET `ho_id` = '4' WHERE city_id in (4, 5);
उपरोक्त SQL Execution के बाद आपको Data कुछ इस तरह से दिखाई देगा।
अब हम चाहते हैं की Head Office के नाम भी दिखाए जाए तब हम Citymst table से Citymst Table को लिंक करगें
SELECT a.city_id, a.city_nm, a.ho_id, b.city_nm FROM citymst a inner join citymst b on a.ho_id = b.city_id
आशा हैं मुझे की आप MySQL Table Join समझे मे आ गए हैं होंगे। MySQL Join से संबंधित कोई भी Query हो तो आप मुझे Comment कर सकते हैं । यह Article कैसा लगा मुझे जरूर बताए , अपना कीमती समय देने के लिए धन्यवाद ।
हमारे अन्य आर्टिकल
- MySQL Function
- MySQL Stored Procedure
- PHP Get /Post Method के बारे में जाने
- PHP Math Function के बारे में जाने
- C से C ++ सीखे सरल शब्दों में
- PHP Variable के बारे में जाने
- Arduino Control Structure
- Union in C
- Declaration of Pointer in C
- jQuery Search Filter
- MySQL Create Table | Alter Table | Drop Table
- API Using NODE REACT EXPRESS MYSQL SEQUELIZE (For Backend OR Server Side)
- CPANEL In Hindi