#1064-您的SQL语法中有错误;请检查与MySQL服务器版本对应的手册,以获取在“FROM tb_users INNER JOIN tb_ph ON tb_ph.username=tb_users.username”附近使用的正确语法,其中tb_ph.r'位于第1行
我在尝试运行下面的查询时出现上述错误
UPDATE tb_users
SET tb_users.tgh = tb_ph.readygh,
tb_users.readygh = tb_ph.readygh * 0.25,
tb_users.profitbalance = tb_ph.readygh - (tb_ph.readygh * 0.25)
FROM tb_users
INNER JOIN tb_ph ON tb_ph.username=tb_users.username
WHERE tb_ph.readygh = tb_ph.paket + (tb_ph.paket*0.6)
and tb_users.username=tb_ph.username
怎么解决呢?
最佳答案
MySQL的正确语法是:
UPDATE tb_users u INNER JOIN
tb_ph p
ON p.username = u.username
SET u.tgh = p.readygh,
u.readygh = p.readygh * 0.25,
u.profitbalance = p.readygh - (p.readygh * 0.25)
WHERE p.readygh = p.paket + (p.paket*0.6);
笔记:
您的语法是SQL Server语法,而不是MySQL语法。
表别名使查询更易于编写和读取。
不需要在
ON
子句和WHERE
子句中重复连接条件。WHERE
情况非常可疑。通常,不在浮点值上使用相等,因为非常小的舍入误差可能会使“相等”值无法进行相等比较。关于mysql - 使用INNER JOIN的SQL查询错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44274331/