2016-10-11 134 views
-1

我試圖更新具有父表的特定表中的列。 表是gradings在這個表我要更新其值是sy_id.MySQL更新INNER JOIN

其他表school_years具有其中具有值列sy_idsy_dates列。 2018 -2019, 2019 - 2020....

我想更新gradings中的sy_id列,但我不知道如何解決這個錯誤。

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

@Berniev - 不,並不強制要保留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' 不更新'gradings'表中的'sy_id'列 – mrgx