内部联接更新sql出错

时间:2014-05-26 15:42:28

标签: mysql

我有2张桌子。在一个表中我有id而在另一个表中我有userId。这是他们之间唯一的联系。

问题是:在一个表中我有用户名而在另一个表中我有他的余额。我希望根据用户名获得用户余额。由于只有一列连接它们并且它是ID,所以如果我只有他的用户名,我需要找到一种更新用户平衡的方法。

这是我尝试过的,但它不起作用:

  UPDATE t1
  SET t1.balance = '999'
  FROM bitcoin.accountbalance AS t1
  INNER JOIN bitcoin.webusers AS t2
  ON t1.userId = t2.id
  WHERE t2.username = 'simpanz';

编辑:

ERROR IS: Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM bitcoin.accountbalance AS t1   INNER JOIN bitcoin.webusers AS t2     WHERE ' at line 3

我使用MySQL。

3 个答案:

答案 0 :(得分:1)

试试这个

 UPDATE  bitcoin.accountbalance AS t1

 INNER JOIN bitcoin.webusers AS t2
 ON t1.userId = t2.id
 SET t1.balance = '999'
 WHERE t2.username = 'simpanz';

你必须加入表格然后设置你想要的东西。

check this

答案 1 :(得分:1)

这适用于SQL Server和MySQL:

UPDATE accountbalance
  SET balance = '999'
  WHERE EXISTS (SELECT 1
                FROM webusers
                WHERE webusers.id = accountbalance.userId AND
                      webusers.username = 'simpanz'
               );

答案 2 :(得分:1)

如果你正在使用MySQL,试试这个,让我知道它是否有效:

UPDATE bitcoin.accountbalance t1
INNER JOIN bitcoin.webusers t2
ON t1.userId = t2.id
SET t1.balance = '999'
WHERE t2.username = 'simpanz';