我有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。
答案 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';
你必须加入表格然后设置你想要的东西。
答案 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';