Ich möchte eine Abfrage wie dies zu tun:Wie aktualisiere ich mit einem Join und einer Gruppe nach?
UPDATE State
LEFT JOIN Actions ON Actions.id = State.id
SET duration = FLOOR(AVG(duration)) WHERE type = 'started' GROUP BY Actions.id
Wie kann ich dies tun würde? (Er sagt, die Gruppe ist ein Fehler)
Das ist fast die Antwort. Können Sie die innere Abfrage so aktualisieren, dass 'WHERE type - 'started' und die äußere Abfrage' WHERE State.id = tmp.id' ist? Ich werde es die Antwort mit diesen Änderungen markieren –
Ich habe es geändert. Die äußere Abfrage benötigt keine 'where'-Klausel, da der JOIN bereits die Daten in der' ON'-Klausel filtert, wenn Sie einen 'INNER JOIN' anstelle eines' LEFT JOIN' verwenden. –
Die äußere Abfrage benötigt es. Wenn ich ohne das lief, erhalte ich einen Fehler, der versucht, einen Nullwert zu setzen. Aber mit dem äußeren wo, alles funktioniert einwandfrei –