在MySQL中,如何使用一个表中的信息来更新另一个表

时间:2012-06-05 22:32:08

标签: mysql stored-procedures cursor

我有两张桌子:团队和人员。

teams有三列,idnameleader

persons包含以下列:hashteam_id

teams.leader是一个MD5哈希,必须匹配persons.hash才能确定哪个人是某个团队的领导者。

我需要在MySQL上运行查询,执行以下操作:

1)检索团队的所有领导者和团队ID:

SELECT `id`,`leader` FROM `teams`;

2)使用此类信息更新表team_id

上的persons

这是我目前的查询:      选择id FROM teams INNER JOIN persons ON teamsleader = personshash

但是我无法想出一个允许我用相应的领导者更新列team_id的解决方案。 我一直在考虑使用游标,但不确定。 有任何想法吗?

1 个答案:

答案 0 :(得分:1)

您可以使用多表UPDATE语法来连接表:

UPDATE teams JOIN persons ON teams.leader = persons.hash
SET persons.team_id = teams.id