Mysql
 sql >> Database >  >> RDS >> Mysql

Colonna di aggiornamento MySQL da un'altra colonna nella stessa tabella

Puoi fare un self-join con la tabella multipla UPDATE sintassi:

UPDATE users u
  JOIN users s ON s.SUPERVISOR_USERNAME = u.USERNAME
SET    u.SUPERVISOR_ID = s.ID

Guardalo su sqlfiddle .

Dovresti quindi rilasciare il tuo SUPERVISOR_NAME colonna, che viola 3NF ; invece, puoi fare un altro self-join quando recuperi i dati, se lo desideri:

SELECT u.ID, u.USERNAME, s.USERNAME AS SUPERVISOR_USERNAME, u.SUPERVISOR_ID
FROM   users u LEFT JOIN users s ON s.ID = u.SUPERVISOR_ID

Guardalo su sqlfiddle .