所以我有一个带有外键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?

最佳答案

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。在分数表中使用它来更新ID

09-25 18:19
查看更多