MySQL JOIN UPDATE | JOIN UPDATE In MySQL In Hindi

📔 : MySQL 🔗

पिछले topic में आपने DELETE JOIN का use करके एक साथ एक से अधिक tables से data delete किया था , ठीक इसी तरह से table data को delete भी कर सकते हैं।     

MySQL में आप JOIN के साथ एक बार में ही एक से अधिक table के columns को update कर सकते हैं।  

MySQL JOIN UPDATE Syntax

अब चूंकि tables को join किया गया है तो आप INNER JOIN या LEFT JOIN का use need के according कर सकते हैं।  

UPDATE table1, table2 [INNER JOIN | LEFT JOIN] join_condition SET table1.column1=value1, table2.column1=value1 WHERE [condition if any]

Explanation

table1, table2 , वो tables हैं जिनके columns को JOIN करके update करना चाहते हैं और , अगर आपको condition apply करनी है तो need के according किसी भी तरह की condition जैसे AND , OR , LIKE , IN या BETWEEN भी use कर सकते हैं।

ध्यान रहे कि आप UPDATE के बाद table1 को हटा देते हैं, तो update query केवल table2 के records को update करेगी , इसी तरह यदि आप table2 को हटा देते हैं, तो केवल table1 से rows को update करेगा ।

MySQL JOIN UPDATE Example

अब कुछ examples देख लेते हैं , जिससे आपको और अच्छे से समझ आ जाये।

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

+----+-------------+
| id | name        |
+----+-------------+
|  2 | Tom Holland |
|  5 | John Quill  |
+----+-------------+

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

+----+---------+---------+-------+
| id | user_id | product | total |
+----+---------+---------+-------+
|  2 |       2 | Clothes |   200 |
|  3 |       2 | Mobile  | 20000 |
+----+---------+---------+-------+

example के लिए मैं users table से id=2 के record का name और user द्वारा buy किये गए product price को एक साथ update करना चाहता हूँ , तो उसके लिए कुछ इस तरह से query होगी -

UPDATE users INNER JOIN user_orders ON user_orders.user_id=users.id SET users.name='Tom Cruise' , user_orders.total=500 WHERE user_orders.product='Clothes';

Output

Query OK, 2 rows affected (0.017 sec)
Rows matched: 2  Changed: 2  Warnings: 0

Output में आप देख सकते हैं कि 2 rows affected हैं , means एक record users table में update हुआ है और एक record user_orders से।  

Update With Left Join

जिस तरह से आपने INNER JOIN किया उसी तरह से आप LEFT या RIGHT JOIN भी use कर सकते हैं , difference सिर्फ इतना रहेगा कि INNER JOIN query में join condition match होने पर ही records update होते हैं , जबकि LEFT या RIGHT JOIN query में main table से तो record update होंगे ही साथ में join condition match होने पर दूसरी table के भी records update होंगे।  

Use Alias

अगर table name बहुत बड़े हैं तो AS Operator का use करके table alias भी apply कर सकते हैं , जैसे नीचे दी गयी query भी same तरह से काम करेगी।

UPDATE users AS u INNER JOIN user_orders AS uo ON uo.user_id=u.id SET u.name='Tom Cruise' , uo.total=500 WHERE uo.product='Clothes';

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