mysql - SQL 查询另一个表中的值
问题描述
我有一个 team_name 列,但我想将列 (team_ID) 中相同团队的 team_ID 存储在不同的表中以用作外键,然后删除 team_names。这是一些截图
我想从(teams_in_league)获取team_ID值的表:
对于 team_ID 为空的每一行,我希望它是包含在下一列中的 team_name 的 ID。我可以使用什么查询来实现这一点?Team_ID 是一个外键 btw
编辑:额外信息:应该有两个表,我将在第二个表中添加更多列。这就是为什么我不加入这两个表。
解决方案
您需要在语句中加入表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
键列:players
team_id
teams_in_league
ALTER TABLE players
ADD FOREIGN KEY (team_id) REFERENCES teams_in_league(team_id);
推荐阅读
- mysql - Mysql合并两个varchar列删除重复词
- sql - 将现有数据附加到具有标识的表中
- angular - Bootstrap 4:TypeError:无法设置未定义错误的属性“emulateTransitionEnd”
- android - 在 Appwidget RemoteViews 中,用户强制停止应用程序后未调用 setOnClickPendingIntent
- objective-c - tkeclipse 不再支持 Objective-C 垃圾回收
- python - 在不执行代码的情况下获取 Python 函数的完全限定名
- python - 有条件地读取数据
- xml - 在 Spark 中读取 XML
- php - 根据 GDPR 阻止所有欧盟访客
- mysql - 添加了 WHERE 子句的 MYSQL 语法