В моей базе данных есть таблица appraisal_lines, и я хочу взять некоторые данные из первой оценки и отобразить их вместе с теми же данными из последней оценки, чтобы можно было легко увидеть переход от первой оценки к текущей.Я делаю это с тремя значениями из обеих оценок плюс другие данные из текущей оценки.
Для этого я думаю, что мне нужно создать временную таблицу для хранения обоих наборов полей плюс дополнительные поля из текущей оценки.
Моя временная таблица создается следующим образом:
CREATE TEMPORARY TABLE appraisal_lines_submitted (
current_perceived_state INT(2),
current_actual_state INT(2),
current_desired_state INT(2),
agreed_action_points TEXT,
agreed_actions_target_date DATE,
assessor_notes TEXT,
category_id INT(2),
sub_categories_id INT(2),
sub_categories_description VARCHAR(45),
sequence_number INT(3) PRIMARY KEY,
first_perceived_state INT(2),
first_actual_state INT(2),
first_desired_state INT(2)
);
Затем я запускаю оператор вставки и выбора следующим образом, чтобы поместить данные из текущей оценки во временную таблицу:
INSERT INTO appraisal_lines_submitted (
current_perceived_state,
current_actual_state,
current_desired_state,
agreed_action_points,
agreed_actions_target_date,
assessor_notes,
category_id,
sub_categories_id,
sub_categories_description,
sequence_number)
SELECT appraisal_lines.perceived_state,
appraisal_lines.actual_state,
appraisal_lines.desired_state,
appraisal_lines.agreed_action_points,
DATE_FORMAT (appraisal_lines.agreed_actions_target_date, '%d/%m/%Y') AS agreed_actions_target_date_formatted,
appraisal_lines.assessor_notes,
appraisal_lines.assessment_category_id,
assessment_sub_categories.id,
assessment_sub_categories.description,
assessment_sub_categories.sequence_number
FROM appraisal_lines LEFT JOIN assessment_sub_categories
ON appraisal_lines.assessment_sub_category_id = assessment_sub_categories.id
WHERE hyperlink_token ='db678f8595edcd78d8ea7f055f7ee790b804c91e'
AND assessment_category_id ='5'
ORDER BY sequence_number;
Это работает нормально.
Однако, когда я запускаю приведенную ниже инструкцию по обновлению, происходит сбой
UPDATE appraisal_lines_submitted JOIN
(SELECT appraisal_lines.perceived_state as update_perceived_state
FROM appraisal_lines
WHERE hyperlink_token ='d7cc7e1adc116e0dac31cbad34cd9a2b322c3507'
AND assessment_category_id ='5'
ORDER BY appraisal_lines.assessment_sub_category_id
) AS increments
ON increments.update_perceived_state = appraisal_lines.perceived_state
SET appraisal_lines_submitted.first_perceived_state = update_perceived_state;
с ошибкой
Код ошибки: 1054
Неизвестный столбец 'appraisal_lines.perceived_state' в 'предложении'
Я написал оператор обновления на основе сообщения: MySQL Обновить значение поля с помощью подзапроса с несколькими возвращающимися строками