我是MySQL的新手,无法解决,甚至在这个论坛上有这么多的答案,无法识别这个声明中的错误。我正在使用MySQL数据库。
我有两个表:费率表和费率表,其中一个客户可以有一个不同费率的产品。
因此,存在客户和产品字段的重复,只有费率字段发生更改。
现在,表RateMaster包含所有字段:ID、客户代码、产品、费率、用户
而表费率只有:id、cust code、rate、user。
-用户字段用于检查会话用户。
现在,表RateMaster有3条记录,所有字段值都相同,但Rate字段为空除外。
表费率有不同的费率。
我想在费率表的费率管理器中更新所有费率。我无法使用UPDATE
和LIMIT
mysql命令执行此操作,它给出的错误为:
更新和限制的使用不正确
UPDATE Ratemaster, Rates
SET Ratemaster.Rate=Rates.Rate
WHERE Ratemaster.user=Rates.user
LIMIT 1
最佳答案
通常,您可以在您的LIMIT
语句中使用ORDER
和UPDATE
,但在您的情况下,如MySQL Documentation 12.2.10. UPDATE Syntax中所述:
对于多表语法,update将更新每个名为
在表中,满足条件的引用。在这种情况下,命令
不能使用by和limit。
请尝试以下操作:
UPDATE Ratemaster
SET Ratemaster.Rate =
(
SELECT Rates.Rate
FROM Rates
WHERE Ratemaster.user = Rates.user
ORDER BY Rates.id
LIMIT 1
)
关于mysql - 使用ORDER BY和LIMIT更新不在MYSQL中工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9080403/