Здесь A представляет собой базу данных и В представляет собой таблицу А и С, D, E, F являются столбцы таблицы B.Oracle PLSQL, чтобы обновление MySQL Query
ОБНОВЛЕНИЕ АВ КОМПЛЕКТ С = (SELECT SUM (D) FROM AB t2 WHERE t2.E = ABE AND t2.F = 2013 GROUP BY E) WHERE F = 2013;
Это прекрасно работает в Oracle PL/SQL, но дает следующее сообщение об ошибке в MySQL: Код
Ошибка: 1093. Вы не можете указать целевую таблицу «B» для обновления в предложении FROM 0.000 сек
Я попытался решить эту проблему с:
CREATE TABLE t2 AS SELECT * FROM B;
, а затем модифицировать исходный запрос, чтобы стать
ОБНОВЛЕНИЕ АВ НАБОР С = (SELECT сумма (D) FROM t2 WHERE t2.E = АВЕ И t2.F = 2013 GROUP BY E), где F = 2013;
Теперь требуется много времени для запуска, и MySQL часто сбой. Любые указатели или помощь приветствуются. То же самое касается любого метода оптимизации запроса ....
спасибо ... я смог сделать этот запрос быстрым, индексируя E ... это сработало !! – Harsh