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 .