Come Fare un UPDATE tramite i valori SELECT di un'altra tabella

In MySql vorrei riuscire a fare un UPDATE di uno o più record selezionando i valori direttamente da un'altra tabella con una SELECT, come posso fare?

Qualcosa di simile a questa query per intenderci:

UPDATE `myTable` SET `myColumn` =  (SELECT `column` FROM `table` WHERE `id`=13);

Può funzionare? E' corretto scriverlo in questo modo?

In Corso 2
MySql 07-03-2020 1 Risposta 5323 Visite +1
Gaspare Buturrà

Gaspare Buturrà

Autore di questa domanda

Risposte ( 1 approvate )

  1. Giorgio Borelli
    0
    07-03-2020 18:07:27
    Rispondi

    Il miglior modo per fare un UPDATE prelevando i valori da una SELECT su un'altra tabella è questo:

    UPDATE Table1 AS T1, (SELECT * FROM Table2 WHERE cond) AS T2 
    SET T1.col1 = T2.col_a, T1.col2 = T2.col_b, T1.col3 = T2.col_c

    Dove T1 e T2 ovviamente rappresentano degli ALIAS delle tue tabelle, puoi anche aggiungere anche una condizione WHERE alla fine di questa query se lo ritieni necessario.

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.

 Domanda Precedente

 Elenco Domande 

Domanda Successiva