MySQL обновляет ВНУТРЕННЕЕ СОЕДИНЕНИЕ

#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