我是 MYSQL 的新手,无法解决,甚至在这个论坛上有这么多答案,也无法识别此语句中的错误。我使用的是MYSQL数据库。
我有 2 个表:Ratemaster 和 rates,其中客户可以拥有 1 个具有不同费率的产品。
因此,客户和产品字段会重复,只有费率字段发生变化。
现在表 Ratemaster 具有所有字段:id、客户代码、产品、费率、用户
而表费率只有:id、客户代码、费率、用户。
- user 字段用于检查 session_user。
现在表 Ratemaster 有 3 条记录,除了费率字段为空外,所有字段值都相同。
Table Rates 有不同的费率。
我希望在 Ratemaster 中更新费率表中的所有费率。我无法做到这一点UPDATE
and LIMIT
mysql命令,报错如下:
UPDATE 和 LIMIT 的错误使用
UPDATE Ratemaster, Rates
SET Ratemaster.Rate=Rates.Rate
WHERE Ratemaster.user=Rates.user
LIMIT 1
通常你可以使用LIMIT
and ORDER
在你的UPDATE
陈述,但在你的情况下不是,如所写MySQL 文档 12.2.10。更新语法 http://dev.mysql.com/doc/refman/5.0/en/update.html:
对于多表语法,UPDATE 更新每个名为
在满足条件的 table_references 中。在这种情况下,订购
不能使用 BY 和 LIMIT。
请尝试以下操作:
UPDATE Ratemaster
SET Ratemaster.Rate =
(
SELECT Rates.Rate
FROM Rates
WHERE Ratemaster.user = Rates.user
ORDER BY Rates.id
LIMIT 1
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)