私はinstructorという名前のテーブルを持っています。MySQL - 平均値に応じた割合で値を増やす
UPDATE instructor
SET salary=salary*1.05
where salary<(select avg(salary) from instructor)
私はinstructorという名前のテーブルを持っています。MySQL - 平均値に応じた割合で値を増やす
UPDATE instructor
SET salary=salary*1.05
where salary<(select avg(salary) from instructor)
はあなたがサブセレクトAに基づくdinmically一時テーブルを作成する必要があります回避するには、このための副選択に基づいてテーブルを更新することはできません可能性がありこれを参照してください
UPDATE instructor
SET salary=salary*1.05
where salary< (
select t.my_avg
from (
select avg(salary) my_avg from instructor
) t
)
表を更新して、同じ問合せ内で副選択として使用することはできません。そうすることは意味をなさない。
目的を達成するには、2つの異なるクエリを実行する必要があります。最初はあなたの副選択です。次に、2番目のクエリは、最初のクエリの結果をパラメータとして使用してテーブルを更新します。
クエリ1:
select avg(salary) from instructor
クエリ2:
UPDATE instructor
SET salary=salary*1.05
where salary < @avg_salary
@Strawberry:なぜdownvoteですか? – Jacobm001
これは答えではありません – Strawberry
@Strawberry:それは答えです。これには、クエリが機能しない理由に関する情報と、問題の解決方法が記載されています。 – Jacobm001
私はこれが解決策だと思いますが、ちょっとしたエラーがあります。後でエイリアスが必要です。(...)t –
@AntonioAttadiaはい..ありがとうございました。 – scaisEdge