You can't specify target table 'item' for update in FROM clause
今日sql処理履歴データを書くとき、タイトルのエラーを報告します.sqlは以下の通りです.
itemテーブルを調べながら修正することはできません.そうしないと問題を引き起こす可能性があります.stackoverflowが提供する解決策の1つは、句クエリの結果をテンポラリ・テーブルに格納することであり、変更されたsqlは以下のようになります.
UPDATE item
SET platf_min_sell_price = NULL,
platf_max_sell_price = NULL
WHERE
item_id IN (
SELECT DISTINCT
item_id
FROM
item_sku
WHERE
sku_id IN (
SELECT
sku_id
FROM
trade_sku_price
WHERE
item_id IN (
SELECT
item_id
FROM
item
WHERE
platform_id = 123456
AND platf_min_sell_price IS NOT NULL
AND platf_max_sell_price IS NOT NULL
)
)
AND attributes IS NOT NULL
)
itemテーブルを調べながら修正することはできません.そうしないと問題を引き起こす可能性があります.stackoverflowが提供する解決策の1つは、句クエリの結果をテンポラリ・テーブルに格納することであり、変更されたsqlは以下のようになります.
UPDATE item
SET platf_min_sell_price = NULL,
platf_max_sell_price = NULL
WHERE
item_id IN (
SELECT
item_id
FROM
(
(
(
SELECT DISTINCT
item_id
FROM
item_sku
WHERE
sku_id IN (
SELECT
sku_id
FROM
trade_sku_price
WHERE
item_id IN (
SELECT
item_id
FROM
item
WHERE
platform_id = 123456
AND platf_min_sell_price IS NOT NULL
AND platf_max_sell_price IS NOT NULL
)
)
AND attributes IS NOT NULL
)
)
) AS t
)