首页 > 解决方案 > SQL 查询另一个表中的值

问题描述

我有一个 team_name 列,但我想将列 (team_ID) 中相同团队的 team_ID 存储在不同的表中以用作外键,然后删除 team_names。这是一些截图

我拥有的桌子(玩家): 在此处输入图像描述

我想从(teams_in_league)获取team_ID值的表:

对于 team_ID 为空的每一行,我希望它是包含在下一列中的 team_name 的 ID。我可以使用什么查询来实现这一点?Team_ID 是一个外键 btw

编辑:额外信息:应该有两个表,我将在第二个表中添加更多列。这就是为什么我不加入这两个表。

标签: mysqlsql

解决方案


您需要在语句中加入表UPDATE

UPDATE players p
INNER JOIN teams_in_league t
ON t.team_name = p.team_name
SET p.team_id = t.team_id

执行更新后,您可以team_name从表中删除该列,players因为它是多余的:

ALTER TABLE players
DROP COLUMN team_name;

并制作引用的外team_id键列:playersteam_idteams_in_league

ALTER TABLE players
ADD FOREIGN KEY (team_id) REFERENCES teams_in_league(team_id);

推荐阅读