2016-10-11 20 views
-1

親テーブルを持つ特定のテーブルの列を更新しようとしました。 gradingsテーブルが値Iが更新するsy_id.MySQLのアップデートINNER JOIN

他のテーブルschool_yearsでカラムsy_idsy_dates値を有している、このテーブルの列です。 2018 -2019, 2019 - 2020....

sy_idgradingsに更新したいのですが、エラーの解決方法はわかりません。

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

どこの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'に更新されました テーブル 'gradings'の' sy_id'カラムを更新しません – mrgx