logo

MySQL POSODOBITEV PRIDRUŽITE SE

Poizvedba UPDATE v MySQL je stavek DML, ki se uporablja za spreminjanje podatkov tabele. Poizvedba UPDATE mora zahtevati stavka SET in WHERE. Klavzula SET se uporablja za spreminjanje vrednosti stolpca, podanega v klavzuli WHERE.

Klavzula JOIN v MySQL se uporablja v stavku za pridobivanje podatkov z združevanjem več tabel znotraj ene same poizvedbe.

UPDATE JOIN je stavek MySQL, ki se uporablja za izvajanje posodobitev med tabelami, kar pomeni, da lahko posodobimo eno tabelo z uporabo druge tabele s pogojem člena JOIN . Ta poizvedba posodobi in spremeni podatke, na podlagi katerih je združenih več kot ena tabela PRIMARNO Ključ in TUJINA Ključ in podani pogoj pridružitve. Posodobimo lahko en ali več stolpcev hkrati z uporabo POSODOBITEV poizvedbe .

OPOMBA: Stavek MySQL UPDATE JOIN je podprt od različice 4.0 ali višje.

Sintaksa

Sledi osnovna sintaksa stavka UPDATE JOIN za spreminjanje zapisa v tabeli MySQL:

 UPDATE Tab1, Tab2, [INNER JOIN | LEFT JOIN] Tab1 ON Tab1.C1 = Tab2.C1 SET Tab1.C2 = Tab2.C2, Tab2.C3 = expression WHERE Condition; 

V zgornji sintaksi MySQL UPDATE JOIN:

Najprej smo določili dve tabeli: glavno tabelo (Tab1) in drugo tabelo (tab2) za stavkom UPDATE. Za klavzulo UPDATE je treba podati vsaj eno tabelo. Nato smo določili vrste Stavki JOIN , tj. bodisi INNER JOIN oz LEVO PRIDRUŽI SE , ki se pojavi takoj za stavkom UPDATE in nato predikatom za združevanje, podanim za ključno besedo ON. Nato moramo nove vrednosti dodeliti stolpcem v Tab1 in/ali Tab2 za spremembo v tabeli. Končno se pogoj WHERE uporablja za omejitev vrstic za posodobitev.

Kako deluje UPDATE JOIN v MySQL?

Delovni proces UPDATE JOIN v MySQL je enak opisanemu v zgornji sintaksi. Včasih pa bi ugotovili, da je samo ta poizvedba izvedla posodobitev med tabelami, ne da bi vključevala kakršna koli združevanja. Naslednja sintaksa je še en način za posodobitev ene tabele z uporabo druge tabele :

spremenljivka javascript global
 UPDATE Tab1, Tab2, SET Tab1.C2 = Tab2.C2, Tab2.C3 = expression WHERE Tab1.C1 = Tab2.C1 AND condition; 

Zgornji stavek UPDATE ustvari enak rezultat kot UPDATE JOIN s členoma INNER JOIN ali LEFT JOIN. To pomeni, da lahko ponovno napišemo zgornjo sintakso kot sintakso UPDATE JOIN, prikazano zgoraj:

 UPDATE Tab1,Tab2 INNER JOIN Tab2 ON Tab1.C1 = Tab2.C1 SET Tab1.C2 = Taba2.C2, Tab2.C3 = expression WHERE condition 

Vzemimo nekaj primerov, da bomo razumeli, kako stavek UPDATE JOIN deluje v tabeli MySQL.

UPDATE JOIN Primeri

Najprej bomo ustvarili dve tabeli z imenom Izvedba in Zaposleni , obe tabeli pa sta povezani prek tujega ključa. Tukaj je 'Performance' a nadrejena tabela , in 'Zaposleni' je otrok tabela . Naslednji skripti ustvarijo obe tabeli skupaj z njihovimi zapisi.

Tabela: Zmogljivost

 CREATE TABLE Performance ( performance INT(11) NOT NULL, percentage FLOAT NOT NULL, PRIMARY KEY (performance) ); 

Nato izpolnite zapise v tabeli s stavkom INSERT.

 INSERT INTO Performance (performance, percentage) VALUES(101,0), (102,0.01), (103,0.03), (104,0.05), (105,0.08); 

Nato izvedite poizvedbo SELECT, da preverite podatke, kot je prikazano na spodnji sliki:

Pridružite se posodobitvi MySQL

Tabela: Zaposleni

 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) ); 

Nato izpolnite zapise v tabeli s stavkom INSERT.

 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); 

Nato izvedite poizvedbo SELECT, da preverite podatke, kot je prikazano na spodnji sliki:

Pridružite se posodobitvi MySQL

UPDATE JOIN s primerom INNER JOIN

Recimo, da želimo posodobiti plačo zaposlenega glede na uspešnost . Plačo zaposlenega lahko posodobimo v tabeli Employees s stavkom UPDATE INNER JOIN, ker uspešnost odstotek je shranjen v tabeli zmogljivosti.

V zgornjih tabelah moramo uporabiti izvedba polje za pridružitev tabeli Zaposleni in uspešnost. Oglejte si spodnjo poizvedbo:

 UPDATE Employees e INNER JOIN Performance p ON e.performance = p.performance SET salary = salary + salary * percentage; 

Po izvedbi zgornjega stavka bomo dobili spodnji rezultat, kjer lahko vidimo, da je stolpec s plačami zaposlenega uspešno posodobljen.

Pridružite se posodobitvi MySQL

Naj razumemo, kako ta poizvedba deluje v MySQL. V poizvedbi smo podali le tabelo Zaposleni za stavkom UPDATE. To je zato, ker želimo spremeniti zapis samo v tabeli Zaposleni, ne pa v obeh tabelah.

Poizvedba preveri vrednosti stolpca uspešnosti za vsako vrstico v tabeli 'Zaposleni' glede na stolpec uspešnosti tabele 'Uspešnost'. Če bo prejel ujemajoči se stolpec uspešnosti, potem vzame odstotek v tabeli uspešnosti in posodobi stolpec plače tabele zaposlenih. Ta poizvedba posodobi vse zapise v tabeli zaposlenih, ker v poizvedbi UPDATE JOIN nismo podali stavka WHERE.

UPDATE JOIN z primerom LEFT JOIN

Da bi razumeli UPDATE JOIN z LEFT JOIN, moramo najprej v tabelo Employees vstaviti dve novi vrstici:

 INSERT INTO Employees (name, performance, salary) VALUES('William', NULL, 73000), ('Rayan', NULL, 92000); 

Ker so ti zaposleni novi zaposleni, njihova evidenca uspešnosti ni na voljo. Oglejte si spodnji rezultat:

Pridružite se posodobitvi MySQL

Če želimo novo zaposlenim posodobiti plačo , ne moremo uporabiti poizvedbe UPDATE INNER JOIN. To je posledica nedostopnosti njihovih podatkov o uspešnosti v tabeli Performance. Zato bomo za izpolnitev te potrebe uporabili stavek UPDATE LEFT JOIN.

Stavek UPDATE LEFT JOIN v MySQL se uporablja za posodobitev vrstice v tabeli, ko v ustrezni vrstici druge tabele ni najdenih zapisov.

Na primer , če želimo novozaposlenemu delavcu povečati plačo za 2,5 %, lahko to storimo s pomočjo naslednje izjave:

 UPDATE Employees e LEFT JOIN Performance p ON e.performance = p.performance SET salary = salary + salary * 0.025 WHERE p.percentage IS NULL; 

Po izvedbi zgornje poizvedbe bomo dobili izhod, kot je spodnja slika, kjer lahko vidimo, da je plača novo zaposlenih zaposlenih uspešno posodobljena.

Pridružite se posodobitvi MySQL

V tem članku smo se naučili stavka MySQL Update Join, ki nam omogoča spreminjanje obstoječih podatkov v eni tabeli z novimi podatki iz druge tabele s pogojem člena JOIN. Ta poizvedba je koristna, ko moramo spremeniti določene stolpce, podane v klavzuli WHERE, skupaj z uporabo klavzul INNER JOIN ali LEFT JOIN.