2011-01-26 2 views
0

Я пытаюсь увеличить поле «sellDate», которое находится в таблице «компания».MYSQL вложенный вопрос newbie вопрос

UPDATE company 
    SET sellingDate = ((SELECT DATE_ADD((SELECT sellingDate 
              FROM company 
             WHERE cid = '35'), INTERVAL 1 DAY))) 
WHERE cid = '35'; 

Этот запрос дает мне ошибку говоря:

Код ошибки: 1093
Вы не можете указать целевую таблицу 'компании' для обновления в предложении FROM

Что я Я здесь делаю неправильно?

+0

Спасибо всем за отзыв. – m0dE

ответ

2

Использование:

UPDATE company 
    SET sellingDate = DATE_ADD(sellingDate, INTERVAL 1 DAY) 
WHERE cid = '35' 

MySQL не позволяет подзапрос в операторе UPDATE против тех же таблиц, но подзапрос не является необходимым для этого примера. По какой-то нечетной причине самосоединение в инструкции UPDATE не вернет ошибку 1093, хотя это та же логика.

0

Try:

UPDATE company SET sellingDate = DATE_ADD(sellingDate, INTERVAL 1 DAY) WHERE cid = '35'; 
0

Вы не можете использовать вспомогательный запрос из одной таблицы, которые вы обновляете Однако вы можете достичь же этого запрос

UPDATE company SET sellingDate=DATE_ADD(sellingDate, INTERVAL 1 DAY) WHERE cid = '35'; 
0

Почему вам нужно использовать вложенный запрос для увеличения этого поля?

UPDATE company SET sellingDate = DATE_ADD(sellingDate, INTERVAL 1 DAY) WHERE cid = '35'; 
Смежные вопросы