mysql - inner join更新sql出错

标签 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。

最佳答案

这将适用于 SQL Server 和 MySQL:

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

关于mysql - inner join更新sql出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23873627/

相关文章:

MySQL获取特定时区的时间

mysql - 如何从大型 mysql 转储中获取特定数据库?

php - Foreach 循环给出错误的结果

mysql - 如何在 mysql 数据库中创建 TINYINT(1) 数据类型?

php - 无法使用 img PHP 从数据库中删除行

javascript - jQuery.data() : set values from php

php - 如何在一个 SQL 表中创建无限类别子项

php - 要求需要数据库连接的文件的正确方法

javascript - 如何在传单中使用javascript从MySql获取数据

mysql - 连接 JOINS 或编写递归函数 - JOIN 查询的动态数量问题