#mysql #join
#mysql #Присоединиться
Вопрос:
Я попытался обновить столбец в определенной таблице, которая имеет родительскую таблицу. Таблица gradings
и столбец в этой таблице, значение которого я хочу обновить, являются sy_id.
В другой таблице school_years
есть столбец sy_id
и sy_dates
который имеет значение. 2018 -2019, 2019 - 2020....
Я хочу обновить столбец sy_id
, gradings
но я понятия не имею, как устранить ошибку.
UPDATE gradings
INNER JOIN school_years
ON gradings.sy_id = school_years.sy_dates
INNER JOIN students
ON gradings.student_id = students.id
SET gradings.sy_id = '2017 - 2018'
WHERE students.id = 1;
Есть мысли?
Комментарии:
1. В чем именно ошибка?
2. ГДЕ students.id = 1; должно быть ‘1’ (в кавычках)?
3. @Berniev — Нет, не обязательно держать 1 в кавычках.
Ответ №1:
Предполагая, что вы не объединяете неправильные столбцы, это должно работать нормально:
update gradings g,
school_years sy,
students s
set
g.sy_id = '2017 - 2018'
where
g.student_id = s.id
and g.sy_id = sy.sy_dates
and s.id = 1
Комментарии:
1. Это тот же код, который я опубликовал выше. Но значение первой строки в
school_years
таблице обновлено, чтобы2017 - 2018
не обновлять столбецsy_id
в таблицеgradings