Я запустил следующий запрос:
UPDATE main_table, reference_table
SET main_table.calc_column =
(CASE WHEN main_table.incr = "6AM"
THEN reference_table.col1+reference_table.col2+...
WHEN main_table.incr = "12AM"
THEN reference_table.col7+reference_table.col8+...
WHEN main_table.incr = "6PM"
THEN reference_table.col13+reference_table.col14+...
ELSE reference_table.col19+reference_table.col20+...)
WHERE main_table.month = extract(month from reference_table.thedate)
AND main_table.day = extract(day from reference_table.thedate)
Я использовал функцию extract()
, так как моя reference_table не имеет столбцов месяца и дня, но имеет столбец даты с именем thedate. Я уже много раз успешно использовал функцию extract()
на reference_table
, поэтому я знаю, что с синтаксисом функции извлечения все в порядке. Однако в этом случае MySQL жалуется. Вероятно, это связано с тем, что я использовал в предложении WHERE
.
Я знаю, что эта проблема может быть исправлена, если я добавлю столбцы месяца и дня в reference_table
, чтобы избежать использования функции extract()
. Однако я очень не хочу этого делать и хотел бы избежать этого. Как я могу заставить это работать? `