2016-10-11 135 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