2016-10-11 2 views
-1

Ich habe versucht, eine Spalte in einer bestimmten Tabelle zu aktualisieren, die eine übergeordnete Tabelle hat. Der Tisch ist gradings und die Spalte in dieser Tabelle, deren Wert ich aktualisieren möchten ist sy_id.MySQL Update INNER JOIN

Die andere Tabelle school_years hat Spalte sy_id und sy_dates, die einen Wert haben. 2018 -2019, 2019 - 2020....

Ich möchte die Spalte sy_id in gradings aktualisieren, aber ich habe keine Ahnung, wie Sie den Fehler beheben.

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; 

Irgendwelche Gedanken?

+0

Was genau ist der Fehler? – MontyPython

+0

WHERE students.id = 1; sollte "1" (zitiert) sein? – Berniev

+0

@Berniev - Nein, es ist nicht obligatorisch, 1 zitiert zu halten. – MontyPython

Antwort

0

Unter der Annahme, dass Sie nicht auf den falschen Spalten anschließen, soll dies gut funktionieren:

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

Es ist der gleiche Code, den ich oben gepostet habe. Aber der Wert der ersten Zeile in der 'school_years'-Tabelle wurde auf '2017 - 2018' aktualisiert aktualisiert die Spalte' sy_id' in der Tabelle 'gratings' nicht – mrgx