2017-05-31 13 views
1

#1064 - SQL構文に誤りがあります。私は上記の、このエラーが出る1INNER JOINを使用したsqlクエリエラー

ラインで「INNERがtb_ph.username ON = tb_users.username WHERE tb_ph.rをtb_phを登録しようtb_usersから」近く使用する権利構文についてはMySQLサーバのバージョンに対応するマニュアルを確認してください以下のクエリを実行しようとしたとき

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

ありがとう。出来た。ニースの学習。 –

関連する問題