2017-05-31 113 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

感謝兄弟。有效。很好的學習。 –