Reputation: 187
I'm trying to update a MySQL table and I keep getting a message stating that "you cannot use target table titles" for update in FROM clause.
This is my UPDATE statement:
UPDATE titles
SET sales = sales * 0.5
WHERE sales > (SELECT AVG(sales) FROM titles);
I'm expecting the average sales to increase by 0.5 FROM titles.
Upvotes: 1
Views: 31
Reputation: 133360
try uisng a join with subquery
UPDATE titles t1
INNER JOIN (
SELECT AVG(sales) my_avg
FROM titles
) t2 on t1.sales > t2.my_avg
SET sales = sales * 0.5
Upvotes: 1