Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL-Update-Spalte aus einer anderen Spalte in derselben Tabelle

Sie können einen Self-Join mit der multiplen Tabelle UPDATE erstellen Syntax:

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

Sehen Sie es auf sqlfiddle .

Sie sollten dann Ihren SUPERVISOR_NAME fallen lassen Spalte, die gegen 3NF verstößt; stattdessen können Sie bei Bedarf eine weitere Selbstverknüpfung vornehmen, wenn Sie die Daten abrufen:

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

Sehen Sie es auf sqlfiddle .