0

What is that I am doing wrong with the below query

Error Message :  You can't specify target table 'cp_asseteventinquiry' for update in FROM clause

Query :

UPDATE cp_asseteventinquiry
SET Due_Date= curdate()
WHERE TopLevelAsset_Num =
(
   SELECT Distinct(TopLevelAsset_Num) FROM cp_asseteventinquiry
   WHERE cp_asseteventinquiry.History='NO'
   AND NOT EXISTS(SELECT Scheduled_Date FROM flightlogs
   WHERE flightlogs.Asset=cp_asseteventinquiry.TopLevelAsset_Num 
   AND flightlogs.Scheduled_Date=date_format (curdate(), '%m/%d/%Y'))
);
potashin
  • 44,205
  • 11
  • 83
  • 107

1 Answers1

0

Just wrap your inner query with SELECT like this :

UPDATE cp_asseteventinquiry
SET Due_Date= curdate()
WHERE TopLevelAsset_Num = (
    SELECT * 
    FROM ( 
          SELECT Distinct(TopLevelAsset_Num)
          FROM cp_asseteventinquiry
          WHERE cp_asseteventinquiry.History='NO'
            AND NOT EXISTS( SELECT Scheduled_Date 
                            FROM flightlogs 
                            WHERE flightlogs.Asset=cp_asseteventinquiry.TopLevelAsset_Num
                              AND flightlogs.Scheduled_Date=date_format (curdate(), '%m/%d/%Y')
            )
    ) AS t)
potashin
  • 44,205
  • 11
  • 83
  • 107