2015-01-15 3 views
0

Что я делаю неправильно с ниже запросаОбновить таблицу с запросом в тех случаях, когда пункт

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

Запрос:

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')) 
); 
+0

Разве вы не задали тот же вопрос вчера? – spencer7593

ответ

0

Просто оберните внутренний запрос с SELECT так:

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) 
+0

Спасибо за ответ Notulysses, но я просто смущен, поскольку запрос, который я опубликовал, завернут в() –

+0

Am i Отсутствует что-то еще ?? –

+1

Спасибо много Notulysses –

Смежные вопросы