如何使用一个查询更新共享一个字段的多个表中的记录?

时间:2011-06-17 18:07:32

标签: mysql sql

我有一个类似论坛网站的数据库。它有一个'用户'表,它与外键链接到其他表('posts','votes'等)。

我正在实现一个功能,用于将两个用户合并到其中一个用户,这需要重新链接所有表。所以我想构建一个这样的查询(在这种情况下,user_id = 1是未触摸用户的id,user_id = 2是正在合并到第一个用户的id):

UPDATE posts, votes ... SET user_id=1 WHERE user_id=2

我自然会收到错误:“字段列表中的列'user_id'不明确”。

我的问题是:如何只用一个查询即可获得所需的结果? (如果可能的话)

编辑:实际桌子数约为6,所以如果你能在答案中考虑到这一点,我将非常感激。

2 个答案:

答案 0 :(得分:2)

尝试以[Table_Name] .Column格式设置您的值。

请尝试使用posts.user_id

,而不是使用user_id

答案 1 :(得分:0)

以下内容应该如此。

    UPDATE posts SET user_id=votes.user_id
    FROM posts INNER JOIN votes ON posts.something=votes.something

如果需要更新多个表,请按顺序执行更新。