使用INNER JOIN的SQL查询错误

时间:2017-05-31 01:44:11

标签: mysql sql inner-join

  

#1064 - 您的SQL语法出错;检查与MySQL服务器版本对应的手册,以便在第1行的'FROM tb_users INNER JOIN tb_ph ON tb_ph.username = tb_users.username WHERE tb_ph.r'附近使用正确的语法

我在尝试运行以下查询时遇到此错误

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 个答案:

答案 0 :(得分: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条件非常可疑。通常,您不对浮点值使用相等性,因为非常小的舍入错误可能会使“相等”值无法进行相等比较。