Aggiornare i campi di una tabella mysql tramite subquery da un'altra tabella

Salve, vorrei fare una query UPDATE per aggiornare alcuni campi di una tabella selezionando i dati e valori con una SELECT da un'altra tabella, è possibile? Devo usare una subquery?

In Corso 2
MySql 13-03-2020 3 Risposte 5237 Visite +2

Risposte ( 3 approvate )

  1. Michele Ladonia
    +1
    13-03-2020 10:23:40
    Rispondi

    Potresti farlo anche con un JOIN sulle due tabelle, se vuoi farlo con una SELECT (subquery) sulla seconda tabella, puoi farlo in questo modo:

    UPDATE table1 t1, (SELECT id, name FROM table2) t2 SET t1.name = t2.name WHERE t1.id = t2.id

    Non è poi così difficile aggiornare i data con una subquery ;)

  2. Michele Brughese
    0
    13-03-2020 10:32:22
    Rispondi

    Se vuoi aggiornare i campi di una prima tabella, anziché usare una subquery per selezionare i valori da una seconda tabella, potresti usare direttamente un JOIN tra le tabelle, in questo modo:

    UPDATE table1 t1 JOIN table2 t2 ON t1.id=t2.id SET t1.name=t2.name;

    anche questa è una query sql molto pulita e veloce per fare un UPDATE dei campi di una tabella prelevando i dati da un'altra tabella.

  3. Federico Di Sutta
    0
    13-03-2020 10:28:12
    Rispondi

    Potresti fare la subquery con una SELECT che vada direttamente a selezionare il valore da prelevare per aggiornare il campo interessato sulla prima tabella, in questo modo:

    UPDATE table1 SET name = (SELECT table2.name FROM table2 WHERE table2.id = table1.id) WHERE table1.id>10

    Ecco un semplice UPDATE della prima tabella selezionando i valori da una seconda tabella, ed ovviamente nell'ultima condizione WHERE dopo la subquery potrai specificare quella a te più congeniale, questo è solo un esempio.

Rispondi

Per poter rispondere a questa domanda, devi essere registrato e loggato sul sito, dopodichè compila il box sottostante cercando di essere il più chiaro ed esauriente possibile, la tua risposta potrebbe essere la soluzione che l'utente cerca ed essere contrassegnata come migliore, consentendoti così di ottenere punti ed autorevolezza.

Agostino Marticoli

Agostino Marticoli

Autore di questa domanda

 Domanda Precedente

 Elenco Domande 

Domanda Successiva