Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Приглашаем принять участие в работе над нашей Wiki.
  • Наша рассылка: subscribe.ru, content.mail.ru и Google groups.
  • Есть желающие вести новостную ленту "В мире технологий"?
  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
   Начало   Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: UPDATE-запрос - будет ли функционировать?  (Прочитано 388 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
malor
Помогающий

ru
Offline Offline

« : 15-10-2011 17:42 » 

Таблица хранит данные:
Пользователь на такой-то вопрос дал такой-то ответ.

Таблицв useranswer:
Цитата
id    id_user  id_question    id_answer
1    1  45  523
2    1  83  841
3    2  804  236
4    1  49  196
5    2  101  823
.........etc................................
Хочу составить запрос, который мне в таблицу usertmp поместит какой же дал ответ пользователь на 45-й вопрос.
Цитата
id    id_us  answer
1    1  [искомое значение]   
............................
Здесь поле id_us хранит ID пользователя.
       
Сам SQL-запрос:
Цитата
UPDATE TABLE usertmp
SET answer = (SELECT ua.id_answer
  FROM useranswer AS ua, usertmp AS ut
  WHERE ua.id_user = ut.id_us
    AND ua.id_question = 45 )
Правильно ли составлен?
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 15-10-2011 18:12 » new

malor, все зависит от СУБД: большинство не допускают одновременно читать и обновлять одну и ту же таблицу. Нужно переписать запрос, особенно учитывая, что UPDATE для тебя данные usertmp уже прочитал.

Код: (SQL)
UPDATE TABLE usertmp
SET answer = (
    SELECT ua.id_answer
    FROM useranswer AS ua
    WHERE ua.id_user = usertmp.id_us
      AND ua.id_question = 45
  )
« Последнее редактирование: 15-10-2011 18:14 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.

Переводы технических терминов.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.16 | SMF © 2011, Simple Machines