使用INNER JOIN的sql查询错误
问题描述:
#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
如何解决?
答
在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
条件是高度可疑的。通常情况下,您不要在浮点值上使用相等性,因为非常小的舍入错误可能会导致“相等”值无法进行相等性比较。
感谢兄弟。有效。很好的学习。 –