#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