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 1 | Sütun 2 | Sütun 3 | |
---|---|---|---|
1 | 1 | on bir | Birinci |
2 | on bir | 12 | Saniye |
3 | yirmi bir | 13 | Üçüncü |
4 | 31 | 14 | Dördüncü |
Sütun 1 | Sütun 2 | Sütun 3 | |
---|---|---|---|
1 | 1 | yirmi bir | İki bir |
2 | on bir | 22 | İki iki |
3 | yirmi bir | 23 | İki üç |
4 | 31 | 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 1 | Sütun 2 | Sütun 3 | |
---|---|---|---|
1 | 1 | on bir | Birinci |
2 | on bir | 12 | Saniye |
3 | yirmi bir | 23 | İki üç |
4 | 31 | 24 | Iki dört |
Sütun 1 | Sütun 2 | Sütun 3 | |
---|---|---|---|
1 | 1 | yirmi bir | Birinci |
2 | on bir | 22 | Saniye |
3 | yirmi bir | 23 | İki üç |
4 | 31 | 24 | Iki dört |
Burada update ifadesinde join cümlesinin kullanıldığını görebiliriz. join cümleciğini kullanarak iki tabloyu birleştirdik.