0

SQL Update への参加に関するその他の問題をいくつか読みましたが、クエリを確定できませんでした。

システムはすべて MySQL (INNODB テーブル構造) にあります

あるテーブルの金額を更新して、別のテーブルの 2 つの変数に基づいて金額を増やしたいと考えています。2 番目のテーブルの変数が更新されるテーブルのキーと一致することを確認するために、更新でチェックする必要があるいくつかの制約があります。

UPDATE as1
SET as1.amount = as1.amount + (b1.workers * b1.level)
FROM account_stock AS as1 内部
結合 building AS b1 ON as1.accountID = b1.accountID 内部
結合 building_seed AS bs1 ON bs1. buildingID = b1. buildingID
WHERE bs1.stockID = as1.stockID
AND b1.accountID = as1.accountID
AND b1.locID = as1.locID
AND b1.status = active
AND b1.gTime > 0

エラーが出て選択できません。簡単な質問で申し訳ありませんが、私の SQL はすべて独学なので、私の習慣のいくつかはあまり良くありません!

4

1 に答える 1

4

の MySQL 構文UPDATEは異なります。ありませんFROM

UPDATE 
    account_stock AS as1
  INNER JOIN building AS b1 ON as1.accountID = b1.accountID
  INNER JOIN building_seed AS bs1 ON bs1.buildingID = b1.buildingID

SET as1.amount = as1.amount + (b1.workers * b1.level)

WHERE bs1.stockID = as1.stockID
  AND b1.locID = as1.locID
  AND b1.status = active
  AND b1.gTime > 0 ;

  --- removed duplicate : 
  --- AND b1.accountID = as1.accountID

また:activeコラムですか、それとも書くつもりですか?:AND b1.status = 'active'

于 2012-05-24T21:47:39.370 に答える