logo

SQL PÄIVITYS JOIN:lla

SQL PÄIVITYS LIITTY tarkoittaa, että päivitämme yhden taulukon käyttämällä toista taulukkoa ja liitosehtoa.

Otetaan esimerkki asiakastaulukosta. Olen päivittänyt asiakastaulukon, joka sisältää uusimmat asiakastiedot toisesta lähdejärjestelmästä. Haluan päivittää asiakastaulukon uusimmilla tiedoilla. Siinä tapauksessa teen liitoksen kohdetaulukon ja lähdetaulukon välillä käyttämällä liittämistä asiakastunnuksessa.

Katsotaanpa syntaksi SQL UPDATE -kyselystä JOIN-käskyllä.

 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 

Kuinka käyttää useita taulukoita SQL UPDATE -käskyssä JOIN-käskyn kanssa

Otetaan kaksi taulukkoa, taulukko 1 ja taulukko 2.

Luo taulukko 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' 

Luo taulukko 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' 

Tarkista nyt taulukon sisältö.

 SELECT * FROM table_1 
 SELECT * FROM table_2 
Col 1Col 2Col 3
11yksitoistaEnsimmäinen
2yksitoista12Toinen
3kaksikymmentäyksi 13 Kolmas
431 14 Neljäs

Col 1Col 2Col 3
11kaksikymmentäyksiKaksi-yksi
2yksitoista22Kaksi-kaksi
3kaksikymmentäyksi 23 Kaksi kolme
431 24 Kaksi-neljä

Edellytämme, että meillä on taulukko 2, jossa on kaksi riviä, joissa sarake 1 on 21 ja 31. Haluamme päivittää taulukon 2 arvon taulukkoon 1 riveille, joissa sarake 1 on 21 ja 31.

Haluamme myös päivittää vain sarakkeiden 2 ja 3 arvot.

Helpoin ja yleisin tapa on käyttää join-lausetta päivityskäskyssä ja useita taulukoita päivityskäskyssä.

 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) 

Tarkista taulukon sisältö

VALITSE taulukosta 1

VALITSE taulukosta 2

Col 1Col 2Col 3
11yksitoistaEnsimmäinen
2yksitoista12Toinen
3kaksikymmentäyksi 23 Kaksi kolme
431 24 Kaksi-neljä

Col 1Col 2Col 3
11kaksikymmentäyksiEnsimmäinen
2yksitoista22Toinen
3kaksikymmentäyksi 23 Kaksi kolme
431 24 Kaksi-neljä

Tässä näemme, että päivityslauseessa käytetään join-lausetta. Olemme yhdistäneet kaksi taulukkoa käyttämällä join-lausetta.