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

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

ru
Offline Offline

« : 15-10-2011 17:42 » new

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

Таблицв 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
Технический
Администратор

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

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

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.21 | SMF © 2015, Simple Machines