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 1 | Col 2 | Col 3 | |
---|---|---|---|
1 | 1 | yksitoista | Ensimmäinen |
2 | yksitoista | 12 | Toinen |
3 | kaksikymmentäyksi | 13 | Kolmas |
4 | 31 | 14 | Neljäs |
Col 1 | Col 2 | Col 3 | |
---|---|---|---|
1 | 1 | kaksikymmentäyksi | Kaksi-yksi |
2 | yksitoista | 22 | Kaksi-kaksi |
3 | kaksikymmentäyksi | 23 | Kaksi kolme |
4 | 31 | 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 1 | Col 2 | Col 3 | |
---|---|---|---|
1 | 1 | yksitoista | Ensimmäinen |
2 | yksitoista | 12 | Toinen |
3 | kaksikymmentäyksi | 23 | Kaksi kolme |
4 | 31 | 24 | Kaksi-neljä |
Col 1 | Col 2 | Col 3 | |
---|---|---|---|
1 | 1 | kaksikymmentäyksi | Ensimmäinen |
2 | yksitoista | 22 | Toinen |
3 | kaksikymmentäyksi | 23 | Kaksi kolme |
4 | 31 | 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.