logo

MySQL FRISSÍTÉS CSATLAKOZÁS

Az UPDATE lekérdezés a MySQL-ben egy DML utasítás, amelyet egy tábla adatainak módosítására használnak. Az UPDATE lekérdezéshez szükséges a SET és a WHERE záradék. A SET záradék a WHERE záradékban megadott oszlop értékeinek megváltoztatására szolgál.

A MySQL-ben a JOIN záradékot az utasításban az adatok lekérésére használják több tábla egyetlen lekérdezésben történő összekapcsolásával.

Az UPDATE JOIN egy MySQL utasítás, amelyet táblák közötti frissítések végrehajtására használnak, ami azt jelenti, hogy frissíthetünk egy táblát egy másik tábla használatával a JOIN záradék feltételével. . Ez a lekérdezés frissíti és módosítja azokat az adatokat, amelyekben egynél több tábla van összekapcsolva ELSŐDLEGES Kulcs és KÜLFÖLDI Kulcs és egy meghatározott csatlakozási feltétel. Egyszerre egy vagy több oszlopot frissíthetünk a segítségével UPDATE lekérdezés .

MEGJEGYZÉS: A MySQL UPDATE JOIN utasítás a 4.0-s vagy újabb verziótól támogatott.

Szintaxis

A következő az UPDATE JOIN utasítás alapvető szintaxisa, amellyel a rekordot módosíthatja a MySQL táblába:

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

A fenti MySQL UPDATE JOIN szintaxisban:

Először is megadtuk a két táblát: a fő táblát (Tab1) és egy másik táblát (tab2) az UPDATE záradék után. Az UPDATE záradék után legalább egy táblát meg kell adni. Ezután meghatároztuk a típusokat JOIN záradékok , azaz vagy BELSŐ CSATLAKOZÁS, ill BAL CSATLAKOZÁS , amelyek közvetlenül az UPDATE záradék, majd az ON kulcsszó után megadott csatlakozási predikátum után jelennek meg. Ezután hozzá kell rendelnünk az új értékeket a Tab1 és/vagy Tab2 oszlopaihoz, hogy módosíthassuk a táblázatban. Végül a WHERE záradék feltétele a frissítési sorok korlátozására szolgál.

Hogyan működik az UPDATE JOIN a MySQL-ben?

Az UPDATE JOIN munkafolyamat MySQL megegyezik a fenti szintaxisban leírtakkal. Néha azonban azt tapasztalhatjuk, hogy ez a lekérdezés önmagában hajtotta végre a kereszttáblás frissítést csatlakozások bevonása nélkül. A következő szintaxis egy másik módja annak, hogy frissítsen egy táblát egy másik tábla használatával :

pandák és numpy
 UPDATE Tab1, Tab2, SET Tab1.C2 = Tab2.C2, Tab2.C3 = expression WHERE Tab1.C1 = Tab2.C1 AND condition; 

A fenti UPDATE utasítás ugyanazt az eredményt adja, mint az UPDATE JOIN egy INNER JOIN vagy LEFT JOIN záradékkal. Ez azt jelenti, hogy a fenti szintaxist újraírhatjuk a fent látható UPDATE JOIN szintaxisként:

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

Vegyünk néhány példát, hogy megértsük, hogyan működik az UPDATE JOIN utasítás a MySQL táblában.

UPDATE JOIN Példák

Először létrehozunk két nevű táblát Teljesítmény és Munkavállaló , és mindkét tábla idegen kulcson keresztül kapcsolódik egymáshoz. Itt a „Teljesítmény” a szülő táblázat , és az „Alkalmazottak” a gyermek asztal . A következő szkriptek mindkét táblát létrehozzák a rekordjaikkal együtt.

táblázat: Teljesítmény

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

Ezután töltse ki a rekordokat a táblázatban az INSERT utasítással.

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

Ezután hajtsa végre a SELECT lekérdezést az adatok ellenőrzéséhez az alábbi képen látható módon:

MySQL frissítés Csatlakozás

táblázat: Alkalmazottak

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

Ezután töltse ki a rekordokat a táblázatban az INSERT utasítással.

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

Ezután hajtsa végre a SELECT lekérdezést az adatok ellenőrzéséhez az alábbi képen látható módon:

MySQL frissítés Csatlakozás

A CSATLAKOZÁS FRISSÍTÉSE az INNER JOIN segítségével Példa

Tegyük fel, hogy frissíteni akarjuk a a munkavállaló teljesítménye alapján fizetett fizetés . Frissíthetjük a munkavállaló fizetését az Alkalmazottak táblázatban az UPDATE INNER JOIN utasítással, mert a teljesítmény százalék a teljesítménytáblázatban van tárolva.

A fenti táblázatokban a teljesítmény mezőt, hogy csatlakozzon az Alkalmazottak és teljesítmény táblázathoz. Lásd az alábbi lekérdezést:

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

A fenti nyilatkozat végrehajtása után az alábbi kimenetet kapjuk, ahol azt láthatjuk, hogy a munkavállaló fizetés oszlopa sikeresen frissült.

MySQL frissítés Csatlakozás

Megértjük, hogyan működik ez a lekérdezés a MySQL-ben. A lekérdezésben csak az Employees táblát adtuk meg az UPDATE záradék után. Ez azért van, mert csak az Alkalmazottak táblában akarjuk megváltoztatni a rekordot, nem mindkét táblában.

A lekérdezés az „Alkalmazottak” tábla minden sorában ellenőrzi a teljesítmény oszlop értékeit a „Teljesítmény” tábla teljesítmény oszlopával. Ha megkapja az egyező teljesítmény oszlopot, akkor a Teljesítmény táblázat százalékát veszi, és frissíti az Alkalmazottak tábla fizetés oszlopát. Ez a lekérdezés frissíti az Employees tábla összes rekordját, mert nem adtuk meg a WHERE záradékot az UPDATE JOIN lekérdezésben.

A JOIN FRISSÍTÉSE a LEFT JOIN segítségével Példa

Az UPDATE JOIN és a LEFT JOIN megértéséhez először két új sort kell beszúrnunk az Employees táblába:

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

Mivel ezek az alkalmazottak újonnan vettek fel, így teljesítményrekordjuk nem áll rendelkezésre. Lásd az alábbi kimenetet:

MySQL frissítés Csatlakozás

Ha frissíteni akarjuk az újonnan felvett alkalmazottak fizetését , nem tudjuk használni az UPDATE INNER JOIN lekérdezést. Ennek az az oka, hogy a teljesítményadatok nem állnak rendelkezésre a Teljesítmény táblázatban. Így az UPDATE LEFT JOIN utasítást fogjuk használni ennek az igénynek a kielégítésére.

Az UPDATE LEFT JOIN utasítás a MySQL-ben a tábla egy sorának frissítésére szolgál, ha nem található rekord egy másik tábla megfelelő sorában.

Például , ha egy újonnan felvett munkavállaló bérét 2,5%-kal szeretnénk emelni, ezt az alábbi nyilatkozat segítségével tehetjük meg:

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

A fenti lekérdezés végrehajtása után az alábbi képen kapjuk meg a kimenetet, ahol láthatjuk, hogy az újonnan felvett alkalmazottak fizetése sikeresen frissült.

MySQL frissítés Csatlakozás

Ebben a cikkben megismertük a MySQL Update Join utasítást, amely lehetővé teszi számunkra, hogy az egyik táblában lévő meglévő adatokat egy másik tábla új adataival módosítsuk a JOIN záradékfeltétellel. Ez a lekérdezés akkor előnyös, ha módosítanunk kell bizonyos, a WHERE záradékban megadott oszlopokat az INNER JOIN vagy a LEFT JOIN záradék használatával együtt.