You can't specify target table 'item' for update in FROM clause
2017-07-11 17:56
489 查看
今天写sql处理历史数据时,报出标题的错误,sql如下:
意思大概就是你不能一边查着item表一边修改它,否则可能会引起问题。
stackoverflow给出的一种解决办法是,把子句查询结果存放到临时表中,修改后的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给出的一种解决办法是,把子句查询结果存放到临时表中,修改后的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 )
相关文章推荐
- You can't specify target table 't_XXX' for update in FROM clause
- mysql中错误:1093-You can’t specify target table for update in FROM clause的解决方法
- mysql 一个较特殊的问题:You can't specify target table 'wms_cabinet_form' for update in FROM clause
- mysql异常:You can't specify target table 'my' for update in FROM clause
- [Err] 1093 - You can't specify target table 's' for update in FROM clause
- MySQL数据库update更新子查询[Err] 1093 - You can't specify target table 'text' for update in FROM clause
- MySQL 错误码: 1093 You can't specify target table 'jc_user' for update in FROM clause
- MySQL 中 You can't specify target table '表名' for update in FROM clause错误解决办法
- mysql中You can’t specify target table for update in FROM clause错误解决方法
- Mysql 错误 Code: 1093. You can't specify target table for update in FROM clause
- [Django](1093, "You can't specify target table 'fee_details_invoices' for update in FROM clause") 错误
- mysql中的一个特殊问题:You can’t specify target table ‘abc’ for update in FROM clause
- MYSQL:You can’t specify target table for update in FROM clause 解决办法
- [Err] 1093 - You can't specify target table 'exam_arrange_list' for update in FROM clause
- You can't specify target table 'xxx' for update in FROM clause
- 关于MYSQL You can't specify target table for update in FROM clause
- mysql中You can’t specify target table for update in FROM clause错误解决方法
- MySQL [Err] 1093 - You can't specify target table 'test' for update in FROM clause
- MySQL中执行sql语句错误 Error Code: 1093. You can't specify target table 'car' for update in FROM clause
- MySQL 出现You can't specify target table for update in FROM clause