Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Coluna de atualização do MySQL de outra coluna na mesma tabela


Você pode fazer uma auto-junção com a tabela múltipla UPDATE sintaxe:
UPDATE users u
  JOIN users s ON s.SUPERVISOR_USERNAME = u.USERNAME
SET    u.SUPERVISOR_ID = s.ID

Veja em sqlfiddle .

Você deve então soltar seu SUPERVISOR_NAME coluna, que viola 3NF ; em vez disso, você pode fazer outra autojunção ao recuperar os dados, se desejar:
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

Veja em sqlfiddle .