Обновите таблицу, используя другую таблицу «ОШИБКА: более одной строки, возвращаемой подзапросом, используемым в качестве выражения»

#postgresql

Вопрос:

ОШИБКА: более одной строки, возвращаемой подзапросом, используемым в качестве выражения, у меня есть временная таблица temp_marks с ключом и значением в качестве столбца. Я пытаюсь обновить таблицу student_subject с помощью temp_mark.

 UPDATE student_subjects set marks = (SELECT tmp.value   FROM temp_marks AS tmp )::int WHERE student_id = std_id   AND subject_id IN (select id   from subjects   where code in (SELECT key FROM temp_marks)  );  

Комментарии:

1. Эта ошибка означает, что в таблице несколько строк temp_marks .

2. Просто добавьте a LIMIT 1 в первый подзапрос.

3. как мы обновляем одно поле из нескольких строк? Я хочу обновить несколько полей в таблице student_subject с помощью temp_mark