2016-10-11 5 views
-1

Я попытался обновить столбец в конкретной таблице с родительской таблицей. Стол gradings и столбец в этой таблице, значение которого я хочу обновить, sy_id.Обновление MySQL INNER JOIN

Другая таблица 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; 

Любые мысли?

+0

Что такое ошибка? – MontyPython

+0

WHERE students.id = 1; должно быть «1» (цитируется)? – Berniev

+0

@ Берниев - Нет, не обязательно указывать 1. – MontyPython

ответ

0

Предполагая, что вы не присоединяетесь на неправильных столбцах, это должно работать нормально:

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 
+0

Это тот же самый код, который я написал выше. Но значение первой строки в таблице «school_years» обновлено до «2017 - 2018» , не обновляя столбец 'sy_id' в таблице' gradings' – mrgx