重现步骤
数据库:zhcxkj-center-warehouse
查询时间:35.6098
扫描行数:2265940
发送行数:610.111
指纹SQL: SELECT b . order_code , a . warehouse_id , b . id AS order_list_id , b . sku , b . customer_id , ( b . product_num + IFNULL ( b . product_num_update , ? ) ) product_num , b . pending_move_number - IFNULL ( f . sumNumber , ? ) lock_num , d . order_source_type , a . amazon_shipment_id , IFNULL ( e . order_build_type , ? ) order_build_type , IFNULL ( e . is_sta_com_order , ? ) is_sta_com_order , IFNULL ( e . interface_type , ? ) interface_type , ? as task_type , ? as taskStatus , b . pending_move_number , IFNULL ( f . sumNumber , ? ) sumNumber FROM ? a JOIN t_stk_order_list b ON a . order_code = b . order_code AND a . customer_id = b . customer_id JOIN rb_order_source d ON a . order_source_id = d . id AND a . customer_id = d . customer_id LEFT JOIN ( SELECT a . customer_id , a . origin_order_code , b . order_list_id , SUM ( CASE WHEN a . task_status < ? then b . sku_number else IFNULL ( b . moved_number , ? ) + IFNULL ( b . abnormal_number , ? ) end ) sumNumber FROM ? a join t_stk_moving_task_detail b on b . moving_task_id = a . id and b . customer_id = a . customer_id WHERE task_type = ? AND task_status < ? GROUP BY a . customer_id , a . origin_order_code , b . order_list_id ) f on f . origin_order_code = a . order_code and f . order_list_id = b . id AND f . customer_id = a . customer_id LEFT JOIN t_stk_order_info_beikuexpand e ON a . order_code = e . order_code AND a . customer_id = e . customer_id WHERE a . add_time >= DATE_ADD ( CURRENT_TIMESTAMP , INTERVAL ? MONTH ) AND a . is_stock_order = ? and b . pending_move_number > ? AND b . pending_move_number - IFNULL ( f . sumNumber , ? ) > ? ;
真实SQL:SELECT b.order_code, a.warehouse_id, b.id AS order_list_id, b.sku, b.customer_id, (b.product_num + IFNULL(b.product_num_update,0)) product_num, b.pending_move_number- IFNULL(f.sumNumber, 0) lock_num, d.order_source_type, a.amazon_shipment_id, IFNULL(e.order_build_type, -1) order_build_type, IFNULL(e.is_sta_com_order, 0) is_sta_com_order, IFNULL(e.interface_type, 0) interface_type, 3 as task_type, 0 as taskStatus, b.pending_move_number, IFNULL(f.sumNumber, 0) sumNumber FROM t_stk_order_info a JOIN t_stk_order_list b ON a.order_code = b.order_code AND a.customer_id = b.customer_id JOIN rb_order_source d ON a.order_source_id = d.id AND a.customer_id = d.customer_id LEFT JOIN ( SELECT a.customer_id,a.origin_order_code,b.order_list_id, SUM(CASE WHEN a.task_status < 4 then b.sku_number else IFNULL(b.moved_number,0)+IFNULL(b.abnormal_number,0)end) sumNumber from t_stk_moving_task a join t_stk_moving_task_detail b on b.moving_task_id=a.id and b.customer_id=a.customer_id WHERE task_type=3 AND task_status < 5 GROUP BY a.customer_id,a.origin_order_code,b.order_list_id )f on f.origin_order_code=a.order_code and f.order_list_id=b.id AND f.customer_id=a.customer_id LEFT JOIN t_stk_order_info_beikuexpand e ON a.order_code = e.order_code AND a.customer_id = e.customer_id WHERE a.add_time >= DATE_ADD(CURRENT_TIMESTAMP,INTERVAL -12 MONTH) AND a.is_stock_order = 1 and b.pending_move_number>0 AND b.pending_move_number- IFNULL(f.sumNumber, 0) > 0;
王凯,人工修改过
AISQL修改建议:
explain表:
额外建议:
索引建议:
