MySqlで以下のSQL文を流すとエラーになってしまいます
(ERROR 1093 (HY000): You can't specify target table 'A' for update in FROM clause)
UPDATE A SET count = (
SELECT C.count
FROM (B
INNER JOIN A ON A.id = B.id)
INNER JOIN C ON C.i_id = (CASE WHEN B.sub_id = 0 THEN B.id ELSE B.sub_id END)
)
WHERE
A.id =
(
SELECT B.id
FROM B)
上記SQLの意図としましては
Aテーブルのcountカラムに、Cテーブルのcountカラムをコピーしたい。
ただAテーブルとCテーブルでは直接紐づかず、AテーブルのidとBテーブルのidが紐づき、そこから、Bテーブルのi_id(sub_idが0じゃなければsub_id)とCテーブルのi_idが紐づいている状態です。
よろしくお願いいたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/28 00:07