UPDATE-kysely MySQL:ssä on DML-käsky, jota käytetään taulukon tietojen muokkaamiseen. UPDATE-kyselyn on vaadittava SET- ja WHERE-lauseita. SET-lausetta käytetään WHERE-lauseessa määritetyn sarakkeen arvojen muuttamiseksi.
MySQL:n JOIN-lausetta käytetään käskyssä tietojen hakemiseen yhdistämällä useita taulukoita yhdessä kyselyssä.
UPDATE JOIN on MySQL-käsky, jota käytetään suorittamaan taulukoiden välisiä päivityksiä, mikä tarkoittaa, että voimme päivittää yhden taulukon käyttämällä toista taulukkoa, jossa on JOIN-lause. . Tämä kysely päivittää ja muuttaa tietoja, joissa useampi kuin yksi taulukko on yhdistetty ENSISIJAINEN Avain ja ULKOMAAN Avain ja määritetty liitosehto. Voimme päivittää yhden tai useita sarakkeita kerralla käyttämällä PÄIVITYS kysely .
HUOMAUTUS: MySQL UPDATE JOIN -käskyä tuetaan versiosta 4.0 tai uudemmasta alkaen.
Syntaksi
Seuraavassa on perussyntaksi UPDATE JOIN -käskystä tietueen muokkaamiseksi MySQL-taulukkoon:
UPDATE Tab1, Tab2, [INNER JOIN | LEFT JOIN] Tab1 ON Tab1.C1 = Tab2.C1 SET Tab1.C2 = Tab2.C2, Tab2.C3 = expression WHERE Condition;
Yllä olevassa MySQL UPDATE JOIN -syntaksissa:
Ensinnäkin olemme määrittäneet kaksi taulukkoa: päätaulukon (Tab1) ja toisen taulukon (tab2) UPDATE-lauseen jälkeen. UPDATE-lauseen jälkeen on määritettävä vähintään yksi taulukko. Seuraavaksi olemme määrittäneet tyypit JOIN-lausekkeet , eli joko INNER JOIN tai LEFT LIITY , jotka näkyvät heti UPDATE-lauseen ja sitten ON-avainsanan jälkeen määritetyn liitospredikaatin jälkeen. Sitten meidän on määritettävä uudet arvot Tab1- ja/tai Tab2-sarakkeisiin taulukon muokkaamista varten. Lopuksi WHERE-lausekkeen ehtoa käytetään päivityksen rivien rajoittamiseen.
Miten UPDATE JOIN toimii MySQL:ssä?
UPDATE JOIN -työprosessi sisään MySQL on sama kuin yllä olevassa syntaksissa. Mutta joskus havaitsimme, että tämä kysely yksin suoritti taulukoiden välisen päivityksen ilman liitoksia. Seuraava syntaksi on toinen tapa päivittää yksi taulukko käyttämällä toista taulukkoa :
merkki.vertaa javaa
UPDATE Tab1, Tab2, SET Tab1.C2 = Tab2.C2, Tab2.C3 = expression WHERE Tab1.C1 = Tab2.C1 AND condition;
Yllä oleva UPDATE-käsky tuottaa saman tuloksen kuin UPDATE JOIN INNER JOIN- tai LEFT JOIN -lauseilla. Se tarkoittaa, että voimme kirjoittaa yllä olevan syntaksin uudelleen yllä näkyväksi UPDATE JOIN -syntaksiksi:
UPDATE Tab1,Tab2 INNER JOIN Tab2 ON Tab1.C1 = Tab2.C1 SET Tab1.C2 = Taba2.C2, Tab2.C3 = expression WHERE condition
Otetaan muutamia esimerkkejä ymmärtääksemme kuinka UPDATE JOIN -käsky toimii MySQL-taulukossa.
PÄIVITYS LIITTYMÄ Esimerkkejä
Ensin luodaan kaksi taulukkoa nimeltä Esitys ja Työntekijä , ja molemmat taulukot liittyvät viiteavaimen kautta. Tässä 'Suorituskyky' on a vanhempien taulukko , ja 'Työntekijät' on lapsi pöytä . Seuraavat komentosarjat luovat molemmat taulukot tietueineen.
Taulukko: Suorituskyky
CREATE TABLE Performance ( performance INT(11) NOT NULL, percentage FLOAT NOT NULL, PRIMARY KEY (performance) );
Täytä seuraavaksi taulukon tietueet INSERT-käskyllä.
INSERT INTO Performance (performance, percentage) VALUES(101,0), (102,0.01), (103,0.03), (104,0.05), (105,0.08);
Suorita sitten SELECT-kysely vahvistaaksesi tiedot alla olevan kuvan mukaisesti:
Taulukko: Työntekijät
CREATE TABLE Employees ( id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) NOT NULL, performance INT(11) DEFAULT NULL, salary FLOAT DEFAULT NULL, CONSTRAINT fk_performance FOREIGN KEY (performance) REFERENCES Performance (performance) );
Täytä seuraavaksi taulukon tietueet INSERT-käskyllä.
INSERT INTO Employees (name, performance, salary) VALUES('Mary', 101, 55000), ('John', 103, 65000), ('Suzi', 104, 85000), ('Gracia', 105, 110000), ('Nancy Johnson', 103, 95000), ('Joseph', 102, 45000), ('Donald', 103, 50000);
Suorita sitten SELECT-kysely vahvistaaksesi tiedot alla olevan kuvan mukaisesti:
PÄIVITYS LIITTYMINEN SISÄLIITTYMISEN Esimerkki
Oletetaan, että haluamme päivittää työntekijän palkkaa suorituksen perusteella . Voimme päivittää työntekijän palkan Työntekijät-taulukossa käyttämällä UPDATE INNER JOIN -lausetta, koska suorituskyky prosentteina on tallennettu suorituskykytaulukkoon.
Yllä olevissa taulukoissa meidän on käytettävä esitys -kenttään liittyäksesi Työntekijät ja suorituskyky -taulukkoon. Katso alla oleva kysely:
UPDATE Employees e INNER JOIN Performance p ON e.performance = p.performance SET salary = salary + salary * percentage;
Yllä olevan lausunnon suorittamisen jälkeen saamme alla olevan lähdön, josta näemme, että työntekijän palkkasarake on päivitetty onnistuneesti.
Ymmärrämme kuinka tämä kysely toimii MySQL:ssä. Kyselyssä olemme määrittäneet vain Työntekijät-taulukon UPDATE-lauseen jälkeen. Tämä johtuu siitä, että haluamme muuttaa tietuetta vain Työntekijät-taulukossa, ei molemmissa taulukoissa.
Kysely vertaa jokaisen Työntekijät-taulukon rivin suorituskykysarakkeen arvot Suorituskyky-taulukon suorituskykysarakkeeseen. Jos se saa täsmäytyssuoritussarakkeen, se ottaa prosenttiosuuden Suorituskykytaulukosta ja päivittää Työntekijät-taulukon palkkasarakkeen. Tämä kysely päivittää kaikki Työntekijät-taulukon tietueet, koska emme ole määrittäneet WHERE-lausetta UPDATE JOIN -kyselyssä.
PÄIVITÄ LIITTYMINEN LEFT JOIN -esimerkillä
Ymmärtääksemme UPDATE JOIN ja LEFT JOIN, meidän on ensin lisättävä kaksi uutta riviä Työntekijät-taulukkoon:
INSERT INTO Employees (name, performance, salary) VALUES('William', NULL, 73000), ('Rayan', NULL, 92000);
Koska nämä työntekijät ovat uusia työntekijöitä, heidän suorituksensa ei ole saatavilla. Katso alla oleva tulos:
Jos haluamme päivittää uusien työntekijöiden palkan , emme voi käyttää UPDATE INNER JOIN -kyselyä. Se johtuu siitä, että heidän suorituskykytietojaan ei ole saatavilla Suorituskykytaulukossa. Käytämme siis UPDATE LEFT JOIN -lausetta täyttääksemme tämän tarpeen.
MySQL:n UPDATE LEFT JOIN -käskyä käytetään taulukon rivin päivittämiseen, kun toisen taulukon vastaavalta riviltä ei löydy tietueita.
Esimerkiksi , jos haluamme nostaa vastikään palkatun työntekijän palkkaa 2,5 %, voimme tehdä sen seuraavan lausunnon avulla:
UPDATE Employees e LEFT JOIN Performance p ON e.performance = p.performance SET salary = salary + salary * 0.025 WHERE p.percentage IS NULL;
Yllä olevan kyselyn suorittamisen jälkeen saamme tulosteen alla olevan kuvan mukaisesti, josta näemme, että uusien palkattujen työntekijöiden palkka on päivitetty onnistuneesti.
Tässä artikkelissa olemme oppineet MySQL Update Join -lausekkeen, jonka avulla voimme muuttaa olemassa olevia tietoja yhdessä taulukossa uusilla tiedoilla toisesta taulukosta JOIN-lausekkeen ehdolla. Tämä kysely on hyödyllinen, kun joudumme muokkaamaan tiettyjä WHERE-lauseessa määritettyjä sarakkeita sekä käyttämällä INNER JOIN- tai LEFT JOIN -lauseita.