2010-07-11 8 views
2

J'ai une table de réponses aux questions:MySQL Créer un tableau récapitulatif?

table questionAnswers: 
    user VARCHAR 
    question VARCHAR 
    answerValue VARCHAR 

Important: Les utilisateurs peuvent poster plusieurs réponses aux questions

Je veux recueillir le nombre de questions auxquelles un utilisateur a répondu dans une table:

table users 
    user VARCHAR 
    questionsAnswered INT 

Important: doit ignorer plusieurs réponses à la même question

Y a-t-il une seule requête qui peut mettre à jour automatiquement la colonne questionsAnswered dans le tableau users?

Répondre

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

Cela suppose que tous les utilisateurs questionsAnswered ont déjà une entrée dans users. (Cela va mettre à jour users, mais il n'insèrera aucune nouvelle ligne.)

+0

Ouf, merci! Dernière minute, sauvez là. – Ender

Questions connexes