Ich habe eine Tabelle mit dem Namen Lehrer.MySQL - Erhöhen Sie den Wert in Prozent nach Durchschnitt
UPDATE instructor
SET salary=salary*1.05
where salary<(select avg(salary) from instructor)
Ich habe eine Tabelle mit dem Namen Lehrer.MySQL - Erhöhen Sie den Wert in Prozent nach Durchschnitt
UPDATE instructor
SET salary=salary*1.05
where salary<(select avg(salary) from instructor)
könnte Sie nicht Tabelle aktualisieren kann basierend auf einem subselect für vermeiden diese Sie dinmically eine temporäre Tabelle basierend auf subselect ein erstellen sollte Siehe hierzu
UPDATE instructor
SET salary=salary*1.05
where salary< (
select t.my_avg
from (
select avg(salary) my_avg from instructor
) t
)
Sie können eine Tabelle nicht aktualisieren und sie als Subselect innerhalb derselben Abfrage verwenden. Das macht keinen Sinn.
Um Ihr Ziel zu erreichen, müssen Sie zwei verschiedene Abfragen ausführen. Der erste wird Ihr Subselect sein. Die zweite Abfrage aktualisiert dann die Tabelle mit dem Ergebnis der ersten Abfrage als Parameter.
Abfrage 1:
select avg(salary) from instructor
Abfrage 2:
UPDATE instructor
SET salary=salary*1.05
where salary < @avg_salary
@Strawberry: Warum der Downvote? – Jacobm001
Dies ist keine Antwort – Strawberry
@Strawberry: Es ist eine Antwort obwohl. Es enthält Informationen darüber, warum die Abfrage nicht funktioniert und listet auf, wie das Problem gelöst werden kann. – Jacobm001
Ich denke, das ist die Lösung, aber es gibt einen kleinen Fehler, Sie brauchen ein t Alias nach von (...) t –
@AntonioAttadia ja .. danke Antwort aktualisiert – scaisEdge