MySQL Left Join In Hindi | Left Join In MySQL In Hindi

📔 : MySQL 🔗

पिछले topic में आपने MySQL Inner Join के बारे में पढ़ा और समझा , इस topic में हम Left Join के बारे में बात करेंगे।

Actually Inner Join के लिए हमेशा Join करने के लिए , दूसरी table में record होना जरूरी होता है नहीं तो कोई record नहीं आएगा। जैसा कि नीचे दिए गए image को देखकर आप समझ सकते हैं।

लेकिन क्या हो अगर हमें तब भी records चाहिए अगर table में पहली table का कोई record न हो ? Well वहां पर हम Left Join use करते हैं।

MySQL Left Join

MySQL में left join use भी जो दो tables को जोड़ने के लिए किया जाता है , लेकिन यह सुनिश्चित करता है कि पहली table के सभी records को लिया जायेगा चाहे दूसरी table में उनका match है या नहीं। अगर मैच हुआ तो आपको दूसरे table के column की actual value मिल जाएगी otherwise NULL मिलेगा।

Left Join Syntax

suppose कीजिये हमारे पास दो tables हैं table1 और table2 , तो Left Join query के लिए Syntax कुछ इस तरह से होगा -

SELECT column_list FROM table1 LEFT JOIN table2 ON join_condition;

Explanation

यहां अगर table2 में कोई record नहीं भी मिलता है या हमारी join condition match नहीं करती है तो भी table1 के सभी records आ जायेंगे।

MySQL Left Join Example

अब इसे और अच्छी तरह से समझने के लिए कुछ live examples देख लेते हैं ।

Suppose, हमारे पास users name की एक table है , जिसमे कुछ इस तरह से records available हैं।

+----+-------------+
| id | name        |
+----+-------------+
|  1 | Tom         |
|  2 | Tom Holland |
|  4 | john Doe    |
|  5 | John Quill  |
+----+-------------+

और एक दूसरी table भी है user_orders नाम की जिसमे user के orders हैं कि user ने कौन सा product किस price पर buy किया है , और कुछ इस तरह से records मौजूद हैं।

+----+---------+---------+-------+
| id | user_id | product | total |
+----+---------+---------+-------+
|  1 |       1 | Shoes   |   455 |
|  2 |       2 | Clothes |   200 |
|  3 |       2 | Mobile  | 20000 |
|  4 |       1 | Grocery |   999 |
|  5 |       1 | Books   |  1100 |
+----+---------+---------+-------+

मुझे सिर्फ ये पता करना है कि किसी user ने कुल कितने रूपये का order किया है , उसके लिए कुछ इस तरह से query होगी।

SELECT users.id, users.name, SUM(user_orders.total) AS total_order FROM users LEFT JOIN user_orders ON user_orders.user_id=users.id GROUP BY users.id;

Output

+----+-------------+-------------+
| id | name        | total_order |
+----+-------------+-------------+
|  1 | Tom         |        2554 |
|  2 | Tom Holland |       20200 |
|  4 | john Doe    |        NULL |
|  5 | John Quill  |        NULL |
+----+-------------+-------------+

Output में देख सकते हैं कि user id 4 , 5 के लिए user_orders table में records नहीं है इसलिए हमें NULL मिला है।

MySQL Alias Table Name

आप चाहे तो table name को AS keyword का use करके alias भी कर सकते हैं। जैसे नीचे दी गयी query भी same result generate करेगी।

SELECT u.id, u.name, SUM(uo.total) AS total_order FROM users AS u LEFT JOIN user_orders AS uo ON uo.user_id=u.id GROUP BY u.id;

Other Left Join Use Cases

अब कुछ और Left Join के use cases देख लेते हैं।

1. किसी user के द्वारा buy किये गए सभी products के name निकलने के लिए कुछ इस तरह से query होगी -

SELECT users.id, users.name, GROUP_CONCAT(user_orders.product) AS buy_products FROM users LEFT JOIN user_orders ON user_orders.user_id=users.id GROUP BY users.id;

Output

+----+-------------+---------------------+
| id | name        | buy_products        |
+----+-------------+---------------------+
|  1 | Tom         | Books,Grocery,Shoes |
|  2 | Tom Holland | Mobile,Clothes      |
|  4 | john Doe    | NULL                |
|  5 | John Quill  | NULL                |
+----+-------------+---------------------+

2. अगर check करना है कि किसी user ने कुछ buy किया है या नहीं , तो कुछ इस तरह से query होगी -

SELECT users.name, IF(SUM(user_orders.total) > 0, 'Yes', 'NO') AS buy_something FROM users LEFT JOIN user_orders ON user_orders.user_id=users.id GROUP BY users.id;

Output

+-------------+---------------+
| name        | buy_something |
+-------------+---------------+
| Tom         | Yes           |
| Tom Holland | Yes           |
| john Doe    | NO            |
| John Quill  | NO            |
+-------------+---------------+

तो कुछ तरह से हम MySQL में Left Join का use करते हैं , I know ऊपर दिए गए example में कुछ advance concept जैसे If , Sum या Group By use किये गए लेकिन tension not :) आगे आप इनके बारे में पढ़ेंगे।

I Hope, आपको Left Join के बारे में अच्छे से समझ आ गया होगा।

Hey ! I'm Rahul founder of learnhindituts.com. Working in IT industry more than 4.5 years. I love to talk about programming as well as writing technical tutorials and blogs that can help to others .... keep learning :)

Get connected with me - LinkedIn Twitter Instagram Facebook