I have two tables, Table_A (DB1) and Table_A (DB2) in different databases (DB1 and DB2 respectively). In these two tables, price and quantity may differ (or may be the same) even if the item_id and store is the same.
                **Table_A (DB1)**   
**item_id**  **store**   **price**   **quantity** 
     1           A            1           1
     2           B            2           4
     1           C            1           1
     3           A            1           1
     3           C            2           1
     2           A            2           3
     3           B            2           2
                 **Table_A (DB2)**  
**item_id**  **store**   **price**   **quantity**            
     1           B            1           2
     2           A            2           3
Now I want to delete all such records from Table_A (DB1) for which the item_id is not present in Table_A (DB2) (remember, these tables may have different price and quantity for a given combination of item_id and store). The table I intend to get is as shown below (Table_A (DB1)-updated):
                **Table_A (DB1)-updated**   
**item_id**  **store**   **price**   **quantity** 
     3           A            1           1
     3           C            2           1
     3           B            2           2
To select such item_ids from Table_A (DB1) for which the item_id is absent in Table_A (DB2), I am using the following query:
SELECT DISTINCT item_id FROM DB1.Table_A
WHERE item_id NOT IN (SELECT DISTINCT item_id FROM DB2.Table_A); 
The above query gives me list of item_id absent in Table_A (DB2) (but present in Table_A (DB1)).
Now I wish to delete all the records from Table_A (DB1) with item_ids that we obtained in above step. I also want to do the same in just one go. I am trying to run the following query but it returns an error.
DELETE FROM DB1.Table_A WHERE item_id IN 
(SELECT DISTINCT item_id FROM DB1.Table_A
WHERE item_id NOT IN (SELECT DISTINCT item_id FROM DB2.Table_A));
The error I get is:
Error Code: 1093. You can't specify target table 'Table_A' for update in FROM clause
Please help. Thank you.
 
    