logo

تحديث SQL مع JOIN

الانضمام إلى تحديث SQL يعني أننا سنقوم بتحديث جدول واحد باستخدام جدول آخر وشرط الانضمام.

دعونا نأخذ مثالا على جدول العملاء. لقد قمت بتحديث جدول العملاء الذي يحتوي على أحدث تفاصيل العميل من نظام مصدر آخر. أريد تحديث جدول العملاء بأحدث البيانات. في مثل هذه الحالة، سأقوم بإجراء الربط بين الجدول الهدف والجدول المصدر باستخدام الربط على معرف العميل.

دعونا نرى بناء الجملة لاستعلام SQL UPDATE مع بيان JOIN.

 UPDATE customer_table INNER JOIN Customer_table ON customer_table.rel_cust_name = customer_table.cust_id SET customer_table.rel_cust_name = customer_table.cust_name 

كيفية استخدام جداول متعددة في عبارة SQL UPDATE مع JOIN

لنأخذ جدولين، الجدول 1 والجدول 2.

إنشاء جدول1

 CREATE TABLE table1 (column1 INT, column2 INT, column3 VARCHAR (100)) INSERT INTO table1 (col1, col2, col3) SELECT 1, 11, 'FIRST' UNION ALL SELECT 11,12, 'SECOND' UNION ALL SELECT 21, 13, 'THIRD' UNION ALL SELECT 31, 14, 'FOURTH' 

إنشاء جدول 2

 CREATE TABLE table2 (column1 INT, column2 INT, column3 VARCHAR (100)) INSERT INTO table2 (col1, col2, col3) SELECT 1, 21, 'TWO-ONE' UNION ALL SELECT 11, 22, 'TWO-TWO' UNION ALL SELECT 21, 23, 'TWO-THREE' UNION ALL SELECT 31, 24, 'TWO-FOUR' 

الآن تحقق من المحتوى الموجود في الجدول.

 SELECT * FROM table_1 
 SELECT * FROM table_2 
العقيد 1العقيد 2العقيد 3
11أحد عشرأولاً
2أحد عشر12ثانية
3واحد وعشرين 13 ثالث
431 14 الرابع

العقيد 1العقيد 2العقيد 3
11واحد وعشريناثنان واحد
2أحد عشر22اثنان اثنان
3واحد وعشرين 23 اثنين ثلاثة
431 24 اثنين من أربعة

مطلبنا هو أن يكون لدينا جدول 2 يحتوي على صفين حيث العمود 1 هو 21 و31. نريد تحديث القيمة من الجدول 2 إلى الجدول 1 للصفوف التي يكون فيها العمود 1 هو 21 و31.

نريد أيضًا تحديث قيم العمود 2 والعمود 3 فقط.

الطريقة الأسهل والأكثر شيوعًا هي استخدام جملة الانضمام في بيان التحديث واستخدام جداول متعددة في بيان التحديث.

 UPDATE table 1 SET Col 2 = t2.Col2, Col 3 = t2.Col3 FROM table1 t1 INNER JOIN table 2 t2 ON t1.Col1 = t2.col1 WHERE t1.Col1 IN (21,31) 

التحقق من محتوى الجدول

اختر من الجدول 1

اختر من الجدول 2

العقيد 1العقيد 2العقيد 3
11أحد عشرأولاً
2أحد عشر12ثانية
3واحد وعشرين 23 اثنين ثلاثة
431 24 اثنين من أربعة

العقيد 1العقيد 2العقيد 3
11واحد وعشرينأولاً
2أحد عشر22ثانية
3واحد وعشرين 23 اثنين ثلاثة
431 24 اثنين من أربعة

هنا يمكننا أن نرى أن استخدام جملة الانضمام في بيان التحديث. لقد قمنا بدمج جدولين باستخدام جملة الصلة.