Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 内部联接更新sql中出错_Mysql - Fatal编程技术网

Mysql 内部联接更新sql中出错

Mysql 内部联接更新sql中出错,mysql,Mysql,我有两张桌子。在一个表中我有id,在另一个表中我有userId。这是他们之间唯一的联系 问题是:在一个表中我有用户名,在另一个表中我有他的余额。我想根据用户的用户名获取用户的余额。因为只有一列连接它们,它是ID,所以我需要找到一种方法,如果我只有他的用户名,如何更新用户平衡 以下是我尝试过但不起作用的方法: UPDATE t1 SET t1.balance = '999' FROM bitcoin.accountbalance AS t1 INNER JOIN bitcoin.w

我有两张桌子。在一个表中我有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。

试试这个

 UPDATE  bitcoin.accountbalance AS t1

 INNER JOIN bitcoin.webusers AS t2
 ON t1.userId = t2.id
 SET t1.balance = '999'
 WHERE t2.username = 'simpanz';
您必须连接表,然后设置所需的内容


这在SQL Server和MySQL中都适用:

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

如果您使用的是MySQL,请尝试以下方法,并告诉我是否有效:

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

您使用的是MySQL还是SQL Server?很抱歉出错,请立即尝试。这显示此错误:错误代码:1054。“字段列表”中的未知列“t1.balance”@OndrejTokar。不管怎么说,那都得走了。SQL Server不喜欢set语句中的表别名。答案是:UPDATE accountbalance set balance='999999'其中userId=SELECT id FROM webusers其中username='simpanz';因为你是最接近的cn,所以你编辑了你的答案,这样我就可以把它标记为正确的?谢谢你。@OndrejTokar。这个答案应该与答案中的内容相等。现有版本有什么问题?