Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Базы данных MySQL

  Все выпуски  

RusFAQ.ru: Базы данных SQL


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Базы данных SQL

Выпуск № 380
от 27.08.2008, 00:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 429, Экспертов: 37
В номере:Вопросов: 1, Ответов: 2

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 141942: Добрый вечер ! Подскажите пожалуйста почему мне не удается выполнить этот запрос: UPDATE ddd SET short_name = ( SELECT short_name FROM ddd WHERE id = 2) WHERE id = 1 Нужно проапдейтить одно поле short_name . Очень хочется это сделать о...

Вопрос № 141.942
Добрый вечер ! Подскажите пожалуйста почему мне не удается выполнить этот запрос:

UPDATE ddd SET short_name = ( SELECT short_name FROM ddd WHERE id = 2) WHERE id = 1

Нужно проапдейтить одно поле short_name . Очень хочется это сделать одним запросом, но выскакивает ошибка :

#1093 - You can't specify target table 'dadada' for update in FROM clause
Отправлен: 21.08.2008, 23:39
Вопрос задал: Whiteman (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Челноков Виктор Альбертович
Здравствуйте, Whiteman!
ВОЗМОЖНА ПРИЧИНА в том что подзапрос SELECT short_name FROM ddd WHERE id = 2 возвращает множество строк , для обновления требуется единственное значение в данном запросе на обновление попробуйте SELECT top (1) short_name FROM ddd WHERE id = 2

запрос будет иметь вид
UPDATE ddd SET short_name = ( SELECT top (1) short_name FROM ddd WHERE id = 2) WHERE id = 1

Ответ отправил: Челноков Виктор Альбертович (статус: 6-ой класс)
Ответ отправлен: 22.08.2008, 07:23
Оценка за ответ: 4
Комментарий оценки:
Че то не работает )

Отвечает: PVS@Lviv
Здравствуйте, Whiteman!
Не мешало бы знать СУБД…
Судя по тексту ошибка из-за использования одиного и того же имени таблицы. Попробуйте c алиасами:

UPDATE ddd ddd_1 SET ddd1.short_name = ( SELECT ddd_2.short_name FROM ddd ddd_2 WHERE ddd_2.id = 2) WHERE ddd_1.id = 1
Ответ отправил: PVS@Lviv (статус: Профессионал)
Украина, Львов
----
Ответ отправлен: 22.08.2008, 09:44
Оценка за ответ: 4
Комментарий оценки:
Тоже не работает :(


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале

∙ Версия системы: 5.1 beta(win) от 11.08.2008

Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное