#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/

10-11 01:25