MYSQLのYou can't specify target table for update in FROM clause解決策


You can't specify target table for update in FROM clauseは、同じテーブルでクエリーできないデータを同じテーブルの更新データとして使用することを意味します.
例:
t_を検索したいのですがuser_assetの残高に50000を加えて更新フィールドf_cashAmountの値は、このように書くのはだめです.
UPDATE t_user_asset SET f_cashAmount = 
	(
     SELECT (ua.f_cashAmount+50000) cashAmount FROM t_user_asset ua WHERE ua.f_userId = 290
  )
WHERE f_userId = 290
は以下の書き方に変更すればいいです.方向を変えてselectの外に1階建てにして、データベースに同じテーブルのデータを同じテーブルの更新データとして調べていないと思わせます.
UPDATE t_user_asset SET f_cashAmount = 
(
  SELECT ub.cashAmount FROM
		(
			 SELECT (ua.f_cashAmount+50000) cashAmount FROM t_user_asset ua WHERE ua.f_userId = 290
		) ub
)
WHERE f_userId = 290

以上の問題はmysqlデータベースのみです