Мне нужна помощь с запросом, который я использую (MySQL) для обновления другой таблицы. При запуске вложенного запроса запрос выполняется менее чем за секунду. Но как только я включаю часть обновления, требуется несколько часов. Запрос, который я использую, выглядит следующим образом:
UPDATE sys_reference.outlet_reference OUTREF LEFT JOIN
(SELECT
store_code 'storeCode'
, LEFT(header_value,20) 'CoOrds'
FROM
am_data_warehouse.am_headers
WHERE
action_date = CURDATE()- 1
AND header_field_id IN (3641, 4937)
) GPSCO
ON OUTREF.store_code = GPSCO.storeCode
SET OUTREF.gps_coordinates = GPSCO.CoOrds
Ниже приведена структура таблицы, которая обновляется:
Я думаю, что подзапрос не делает вам никаких выгод. Я думаю, вы можете переписать его для устранения подзапроса.
UPDATE
sys_reference.outlet_reference AS OUTREF
INNER JOIN am_data_warehouse.am_headers AS GPSCO ON OUTREF.store_code =
GPSCO.storeCode
SET
OUTREF.gps_coordinates = LEFT(GPSCO.header_value,20)
WHERE
GPSCO.action_date = CURDATE() - 1
AND GPSCO.header_field_id IN (3641, 4937)