所以我有一个带有外键TeamID的分数表
ID TeamID Score Month
1 1 100 1
2 2 90 2
3 2 80 3
在桌面团队中有重复这样的内容:
ID TeamName
1 Team A
2 Team A
我想将得分表上的TeamID字段更新为团队表上的第一个出现,这样我就可以安全地删除团队表上的重复项,例如:
ID TeamID Score Month
1 1 100 1
2 1 90 2
3 1 80 3
如何在不手动更新每个ID的情况下如何做到这一点?
答案 0 :(得分:1)
select t1.id, t2.id as newId
from team t1
join (select min(id) as id,
TeamName
from team
group by TeamName) t2 on t1.TeamName=t2.TeamName
查询将返回哪个id应替换为新ID。在分数表中使用它来更新ID
答案 1 :(得分:0)
试试这个
UPDATE score SET TeamID = (SELECT ID from Team ORDER BY ID limit 1);
答案 2 :(得分:0)
这应该对你有用
UPDATE scores SET TeamID = (SELECT MIN(t3.ID) from Team t2 JOIN Team t3 ON t2.TeamName = t3.TeamName WHERE t2.ID = scores.TeamID)