Mysql
 sql >> Base de données >  >> RDS >> Mysql

Colonne de mise à jour MySQL à partir d'une autre colonne dans la même table

Vous pouvez créer une auto-jointure avec la table multiple UPDATE syntaxe :

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

Voir sur sqlfiddle .

Vous devez alors déposer votre SUPERVISOR_NAME colonne, qui viole 3NF ; à la place, vous pouvez créer une autre auto-jointure lorsque vous récupérez les données si vous le souhaitez :

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

Voir sur sqlfiddle .