logo

JOIN ile SQL GÜNCELLEME

SQL GÜNCELLEME KATILIN bir tabloyu başka bir tabloyu kullanarak güncelleyeceğimiz ve koşulu birleştireceğimiz anlamına gelir.

Müşteri tablosu örneğini ele alalım. Başka bir kaynak sistemden en son müşteri ayrıntılarını içeren müşteri tablosunu güncelledim. Müşteri tablosunu en son verilerle güncellemek istiyorum. Böyle bir durumda hedef tablo ile kaynak tablo arasında müşteri kimliğini birleştirmeyi kullanarak birleştirme gerçekleştireceğim.

bakalım sözdizimi JOIN ifadesi ile SQL UPDATE sorgusunun.

 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 

JOIN ile SQL UPDATE deyiminde birden çok tablo nasıl kullanılır?

İki tablo alalım, tablo 1 ve tablo 2.

Tablo1 oluştur

 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' 

Tablo2 oluştur

 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' 

Şimdi tablodaki içeriği kontrol edin.

 SELECT * FROM table_1 
 SELECT * FROM table_2 
Sütun 1Sütun 2Sütun 3
11on birBirinci
2on bir12Saniye
3yirmi bir 13 Üçüncü
431 14 Dördüncü

Sütun 1Sütun 2Sütun 3
11yirmi birİki bir
2on bir22İki iki
3yirmi bir 23 İki üç
431 24 Iki dört

Bizim gereksinimimiz, Sütun 1'in 21 ve 31 olduğu iki satırı olan tablo 2'ye sahip olmamızdır. Sütun 1'in 21 ve 31 olduğu satırlar için tablo 2'deki değeri tablo 1'e güncellemek istiyoruz.

Ayrıca yalnızca Sütun 2 ve Sütun 3'ün değerlerini de güncellemek istiyoruz.

En kolay ve yaygın yol, update ifadesinde join cümleciğini kullanmak ve update ifadesinde birden fazla tablo kullanmaktır.

 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) 

Tablonun içeriğini kontrol edin

tablo 1'DEN SEÇİN

tablo 2'DEN SEÇİN

Sütun 1Sütun 2Sütun 3
11on birBirinci
2on bir12Saniye
3yirmi bir 23 İki üç
431 24 Iki dört

Sütun 1Sütun 2Sütun 3
11yirmi birBirinci
2on bir22Saniye
3yirmi bir 23 İki üç
431 24 Iki dört

Burada update ifadesinde join cümlesinin kullanıldığını görebiliriz. join cümleciğini kullanarak iki tabloyu birleştirdik.