2017-05-31 112 views
1

#1064 - 您的SQL语法错误;检查对应于你的MySQL服务器版本使用附近的“FROM tb_users INNER JOIN tb_ph ON tb_ph.username = tb_users.username WHERE tb_ph.r”在行1使用INNER JOIN的sql查询错误

我得到上面这个错误正确的语法手册当试图运行下面的查询时

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 

如何解决?

回答

1

在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条件是高度可疑的。通常情况下,您不要在浮点值上使用相等性,因为非常小的舍入错误可能会导致“相等”值无法进行相等性比较。
+0

感谢兄弟。有效。很好的学习。 –