logo

ISCRIVITI ALL'AGGIORNAMENTO MySQL

La query UPDATE in MySQL è un'istruzione DML utilizzata per modificare i dati di una tabella. La query UPDATE deve richiedere la clausola SET e WHERE. La clausola SET viene utilizzata per modificare i valori della colonna specificata nella clausola WHERE.

La clausola JOIN in MySQL viene utilizzata nell'istruzione per recuperare i dati unendo più tabelle all'interno di una singola query.

UPDATE JOIN è un'istruzione MySQL utilizzata per eseguire aggiornamenti tra tabelle, il che significa che possiamo aggiornare una tabella utilizzando un'altra tabella con la condizione della clausola JOIN . Questa query aggiorna e altera i dati in base ai quali vengono unite più tabelle PRIMARIO Chiave e STRANIERO Chiave e una condizione di unione specificata. Possiamo aggiornare colonne singole o multiple alla volta utilizzando il file Domanda di AGGIORNAMENTO .

NOTA: l'istruzione MySQL UPDATE JOIN è supportata dalla versione 4.0 o successiva.

Sintassi

Di seguito è riportata una sintassi di base dell'istruzione UPDATE JOIN per modificare il record nella tabella MySQL:

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

Nella sintassi MySQL UPDATE JOIN sopra:

Per prima cosa abbiamo specificato le due tabelle: la tabella principale (Tab1) e un'altra tabella (tab2) dopo la clausola UPDATE. Dopo la clausola UPDATE è necessario specificare almeno una tabella. Successivamente, abbiamo specificato i tipi di Clausole JOIN , ovvero INNER JOIN o SINISTRA UNISCITI , che appare subito dopo la clausola UPDATE e quindi un predicato di join specificato dopo la parola chiave ON. Quindi, dobbiamo assegnare i nuovi valori alle colonne in Tab1 e/o Tab2 per la modifica nella tabella. Infine, la condizione della clausola WHERE viene utilizzata per limitare le righe per l'aggiornamento.

Come funziona UPDATE JOIN in MySQL?

Il processo di lavoro UPDATE JOIN in MySQL è lo stesso descritto nella sintassi precedente. A volte, però, scopriamo che questa query da sola esegue l'aggiornamento tra tabelle senza coinvolgere alcun join. La sintassi seguente rappresenta un altro modo per aggiornare una tabella utilizzando un'altra tabella :

Java per i tipi di loop
 UPDATE Tab1, Tab2, SET Tab1.C2 = Tab2.C2, Tab2.C3 = expression WHERE Tab1.C1 = Tab2.C1 AND condition; 

L'istruzione UPDATE precedente produce lo stesso risultato di UPDATE JOIN con clausole INNER JOIN o LEFT JOIN. Significa che possiamo riscrivere la sintassi precedente come sintassi UPDATE JOIN visualizzata sopra:

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

Facciamo alcuni esempi per capire come funziona l'istruzione UPDATE JOIN nella tabella MySQL.

AGGIORNA UNISCITI Esempi

Per prima cosa creeremo due tabelle denominate Prestazione E Dipendente ed entrambe le tabelle sono correlate tramite una chiave esterna. Qui, la 'Prestazione' è a tabella padre e 'Dipendenti' è il bambino tavolo . Gli script seguenti creano entrambe le tabelle insieme ai relativi record.

Tabella: prestazioni

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

Successivamente, riempi i record nella tabella utilizzando l'istruzione INSERT.

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

Quindi, esegui la query SELECT per verificare i dati come mostrato nell'immagine seguente:

Partecipa all'aggiornamento MySQL

Tabella: Dipendenti

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

Successivamente, riempi i record nella tabella utilizzando l'istruzione 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); 

Quindi, esegui la query SELECT per verificare i dati come mostrato nell'immagine seguente:

Partecipa all'aggiornamento MySQL

UPDATE JOIN con INNER JOIN Esempio

Supponiamo di voler aggiornare il file retribuzione del dipendente in base alle sue prestazioni . Possiamo aggiornare lo stipendio di un dipendente nella tabella Employees utilizzando l'istruzione UPDATE INNER JOIN perché le prestazioni percentuale viene memorizzato nella tabella delle prestazioni.

Nelle tabelle sopra, dobbiamo usare il file prestazione per unirsi alla tabella Dipendenti e prestazioni. Vedi la query seguente:

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

Dopo aver eseguito l'istruzione precedente, otterremo l'output seguente, dove possiamo vedere che la colonna dello stipendio del dipendente è stata aggiornata correttamente.

Partecipa all'aggiornamento MySQL

Cerchiamo di capire come funziona questa query in MySQL. Nella query abbiamo specificato solo la tabella Employees dopo la clausola UPDATE. È perché vogliamo modificare il record solo nella tabella Employees, non in entrambe le tabelle.

La query controlla i valori della colonna prestazioni per ogni riga nella tabella 'Dipendenti' rispetto alla colonna prestazioni della tabella 'Prestazioni'. Se ottiene la colonna delle prestazioni corrispondenti, prende la percentuale nella tabella Prestazioni e aggiorna la colonna dello stipendio della tabella Dipendenti. Questa query aggiorna tutti i record nella tabella Employees perché non abbiamo specificato la clausola WHERE nella query UPDATE JOIN.

AGGIORNA JOIN con LEFT JOIN Esempio

Per comprendere l'UPDATE JOIN con LEFT JOIN, dobbiamo prima inserire due nuove righe nella tabella Employees:

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

Poiché questi dipendenti sono nuovi assunti, il loro record di performance non è disponibile. Vedere l'output seguente:

Partecipa all'aggiornamento MySQL

Se vogliamo aggiornare lo stipendio dei neo assunti , non possiamo utilizzare la query UPDATE INNER JOIN. Ciò è dovuto alla indisponibilità dei dati sulle prestazioni nella tabella Prestazioni. Pertanto, utilizzeremo l'istruzione UPDATE LEFT JOIN per soddisfare questa esigenza.

L'istruzione UPDATE LEFT JOIN in MySQL viene utilizzata per aggiornare una riga in una tabella quando non sono stati trovati record nella riga corrispondente di un'altra tabella.

Per esempio , se vogliamo aumentare del 2,5% lo stipendio di un neoassunto, possiamo farlo con l'aiuto della seguente affermazione:

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

Dopo aver eseguito la query di cui sopra, otterremo l'output come nell'immagine seguente in cui possiamo vedere che lo stipendio dei dipendenti appena assunti è stato aggiornato con successo.

Partecipa all'aggiornamento MySQL

In questo articolo abbiamo imparato l'istruzione MySQL Update Join che ci consente di modificare i dati esistenti in una tabella con i nuovi dati di un'altra tabella con la condizione della clausola JOIN. Questa query è vantaggiosa quando è necessario modificare determinate colonne specificate nella clausola WHERE insieme all'utilizzo delle clausole INNER JOIN o LEFT JOIN.