0
このSQL命令が機能しないのはなぜですか?where句の更新集約関数
私は平均より低い給料を持っているすべての従業員のために15%の給与を更新したい...
UPDATE Employers SET salary=salary * 1.15 WHERE salary < (SELECT AVG(salary) FROM Employers);
感謝。
このSQL命令が機能しないのはなぜですか?where句の更新集約関数
私は平均より低い給料を持っているすべての従業員のために15%の給与を更新したい...
UPDATE Employers SET salary=salary * 1.15 WHERE salary < (SELECT AVG(salary) FROM Employers);
感謝。
は、あなたがそれはあなたを与えるエラーが何である別名
UPDATE Employers
SET salary=salary * 1.15
CROSS JOIN ((SELECT AVG(salary) avg_salary FROM Employers)) t
WHERE salary < t.avg_salary;
を必要とするだろうか?あなたは最後に向かって ')'が欠けています。 '(雇用者からのAVG(給与)の選択); – Santi
申し訳ありません:)。しかし、これは問題ではありません... mysqlでは、私は次のメッセージを持っています: #1093 - テーブル '雇用者'は、 'UPDATE'のターゲットとしても、データの別のソースとしても、 – nosperov
残念ながら、あなたはMySQLの制限を克服しているようです:["あなたはテーブルを更新したりサブクエリの同じテーブルから選択することはできません。"](http://dev.mysql.com/doc/refman/5.7/ en/update.html)。解決策がないとは言えませんが、個人的に私はそれを認識していません。もっと知っている人があなたのために解決策を提供できるかもしれません! – Santi