使用Select Statement更新

时间:2013-04-07 04:40:44

标签: mysql sql sql-update

我想写一个这样的查询:

UPDATE `test_credit` 
SET `test_credit`.`credit`=(`test_credit`.`credit`-((`test_credit`.`credit`/100)*5)) 
WHERE `test_credit`.`name` = `users`.`uname`

实际上我想查询usersuname = test_creditname,但mysql说它有错误并认识到users。{ {1}}作为列

什么是正确的查询?

1 个答案:

答案 0 :(得分:4)

您需要使用表users显式加入它。根据我对您的查询的理解,如果两个表上都存在credit,您需要计算names

尝试一下,

UPDATE  test_credit a
        INNER JOIN users b
            ON a.name = b.uname
SET     a.credit = (a.credit - ((a.credit/100) * 5.0)) 
-- WHERE  b.parent= "example"