Update statement with subquery (ERROR 1093 (HY000): You can't specify target table 'PENALTIES' for update in FROM clause)
mysql> mysql> mysql> CREATE TABLE PENALTIES -> (PAYMENTNO INTEGER NOT NULL, -> EmployeeNO INTEGER NOT NULL, -> PAYMENT_DATE DATE NOT NULL, -> AMOUNT DECIMAL(7,2) NOT NULL, -> PRIMARY KEY (PAYMENTNO) ); Query OK, 0 rows affected (0.00 sec) mysql> mysql> INSERT INTO PENALTIES VALUES (1, 6, '1980-12-08',100); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO PENALTIES VALUES (2, 44, '1981-05-05', 75); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO PENALTIES VALUES (3, 27, '1983-09-10',100); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO PENALTIES VALUES (4,104, '1984-12-08', 50); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO PENALTIES VALUES (5, 44, '1980-12-08', 25); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO PENALTIES VALUES (6, 8, '1980-12-08', 25); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO PENALTIES VALUES (7, 44, '1982-12-30', 30); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO PENALTIES VALUES (8, 27, '1984-11-12', 75); Query OK, 1 row affected (0.00 sec) mysql> mysql> UPDATE PENALTIES -> SET AMOUNT = AMOUNT * 1.2 -> WHERE AMOUNT > -> (SELECT AVG(AMOUNT) -> FROM PENALTIES); ERROR 1093 (HY000): You can't specify target table 'PENALTIES' for update in FROM clause mysql> mysql> drop table penalties; Query OK, 0 rows affected (0.00 sec) mysql>