Mysql 使用子查询更新表

Mysql 使用子查询更新表,mysql,sql,subquery,sql-update,Mysql,Sql,Subquery,Sql Update,正如你所看到的,我想做的是: [1] 在表论坛qa中获取与$toggled匹配的记录的作者id [2] 更新用户档案中的声誉,其中用户id匹配作者id UPDATE user_profiles (SELECT forum_qa_author_id AS author_id FROM forum_qa WHERE forum_qa_id = $toggled) AS f SET user_profiles.reputation = u

正如你所看到的,我想做的是:

[1] 在表论坛qa中获取与
$toggled
匹配的记录的作者id

[2] 更新用户档案中的声誉,其中用户id匹配作者id

    UPDATE  user_profiles

    (SELECT forum_qa_author_id AS author_id
    FROM    forum_qa
    WHERE   forum_qa_id = $toggled) AS f

    SET     user_profiles.reputation = user_profiles.reputation - 15
    WHERE   user_profiles.user_id = f.author_id
这给了我一个1064语法错误,位于
(选择…

知道我做错了什么吗

谢谢你的帮助!

试试:

UPDATE  user_profiles
SET     user_profiles.reputation = user_profiles.reputation - 15
WHERE   user_profiles.user_id = (SELECT forum_qa_author_id AS author_id
FROM    forum_qa
WHERE   forum_qa_id = $toggled)
尝试:


子查询必须位于“SET”之后。在这种情况下,它可能不一定需要子查询

试试看

UPDATE user_profiles
   SET user_profiles.reputation = user_profiles.reputation - 15
  FROM user_profiles
  JOIN forum_qa f ON user_profiles.user_id = f.author_id
   AND forum_qa_id = $toggled

子查询必须位于“SET”之后。在这种情况下,它可能不一定需要子查询

试试看

UPDATE user_profiles
   SET user_profiles.reputation = user_profiles.reputation - 15
  FROM user_profiles
  JOIN forum_qa f ON user_profiles.user_id = f.author_id
   AND forum_qa_id = $toggled
我刚刚意识到您正在使用MySQL。这是针对MS SQL的,我不确定您是否可以在MySQL中以完全相同的方式使用它,但希望这会有一点帮助

我刚刚意识到您正在使用MySQL。这是针对MS SQL的,我不确定您是否可以在MySQL中以完全相同的方式使用它,但希望这会有一点帮助