2010-07-11 5 views
2

У меня есть таблица ответов на вопросы:MySQL Создать сводную таблицу?

table questionAnswers: 
    user VARCHAR 
    question VARCHAR 
    answerValue VARCHAR 

Важно: Пользователи могут размещать несколько ответов на вопросы

Я хочу, чтобы собрать как много вопросов пользователь ответил в таблицу:

table users 
    user VARCHAR 
    questionsAnswered INT 

Важно: Has игнорировать несколько ответов на тот же вопрос

Есть ли один запрос, который может автоматически обновлять столбец questionsAnswered в таблице users?

ответ

3
UPDATE users AS u 
SET questionsAnswered = (
    SELECT COUNT(DISTINCT question) 
    FROM questionAnswers AS q 
    WHERE q.user=u.user) 

Это предполагает, что все пользователи в questionsAnswered уже есть запись в users. (Это обновит users, но он не будет вставлять новые строки.)

+0

Phew, спасибо! В последнюю минуту за исключением. – Ender

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