我是MYSQL的新手,无法解决甚至在该论坛上回答太多,也无法识别此语句中的错误。我正在使用MYSQL数据库。
我有2个表:Ratemaster和Rates,客户可以在其中拥有1个具有不同费率的产品。因此,有一个重复的客户和产品字段,只有费率字段更改。现在,Table Ratemaster具有所有字段:id,客户代码,产品,费率,用户,而Table Rate仅具有:id,客户代码,费率,用户。-用户字段用于检查session_user。
现在,表Ratemaster具有3条记录,所有字段的值都相同,但Rate字段为空。桌费有不同的费率。我想从Rates表中的Ratemaster中更新所有价格。我无法使用mysql UPDATE和LIMITmysql命令执行此操作,它给出以下错误:
UPDATE
LIMIT
错误使用UPDATE和LIMIT
UPDATE Ratemaster, Rates SET Ratemaster.Rate=Rates.Rate WHERE Ratemaster.user=Rates.user LIMIT 1
通常,您可以在语句中使用LIMIT和,但在您的情况下则不能使用,如MySQL文档12.2.10中所述。UPDATE语法:ORDER``UPDATE
ORDER``UPDATE
对于多表语法,UPDATE更新满足条件的table_references中命名的每个表中的行。在这种情况下,不能使用ORDER BY和LIMIT。
请尝试以下操作:
UPDATE Ratemaster SET Ratemaster.Rate = ( SELECT Rates.Rate FROM Rates WHERE Ratemaster.user = Rates.user ORDER BY Rates.id LIMIT 1 )