2015-01-18 3 views
0

У меня есть система вопросов и ответов, каждый вопрос должен иметь 4 ответовMySQL: обновление условия выбора

мне нужно запустить SQL запрос для обновления «класса» вопроса, чтобы быть «D» (чтобы предотвратить его появляются), если он имеет менее 4 ответы

таблицы структуры:

вопрос (таблица)

id  text  class 
1  Is..  A 
2  Where.. B 
3  where.. A 
4  Why..  A 
5  Do..  A 

ответ (таблица)

id  qid  text 
1  1  .. 
2  1  .. 
3  1  .. 
4  2  .. 
5  3  .. 

примечание: "answer.qid" относятся к "question.id"

спасибо,

ответ

1

Попробуйте что-нибудь с подзапросом вроде:

UPDATE question 
SET class = 'D' 
WHERE id IN 
     (SELECT qid 
      FROM answer 
      GROUP BY qid 
      HAVING count(qid) < 4) 
+0

PLS, как рассчитать вопросы (есть меньше 4 ответов)? – mwafi

+0

Извините, дорогой альмас, но вы видели ответы, прежде чем отправлять ответ? – jfun

+1

'SELECT qid, count (qid) FROM answer GROUP BY qid HAVING count (qid) <4' – SMA

0

На лету, я бы сказал, вы могли бы использовать подвыбор:

UPDATE question SET class='D' WHERE (SELECT count(*) FROM answer INNER JOIN answer.qid = question.id) < 4; 
0
update question 
set class='D' 
where question.id in (select qid from answer group by qid having count(*)<4) 
+0

fix typo select qid из группы ответов по qid, имеющей счетчик (*) <4 –

+0

сразу после отправки ответа, я вижу это, но при обновлении произошла ошибка, наконец, я исправил его, спасибо. – jfun

+0

Опечатка 'обновление вопрос набор класс =«D» где questions.id' должен быть' обновление вопрос набор класс = «D» где question.id' – SMA

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