I have a table of answers to questions:
table questionAnswers:
user VARCHAR
question VARCHAR
answerValue VARCHAR
Important: Users can post multiple answers to questions
I want to collect how many questions a user has answered into a table:
table users
user VARCHAR
questionsAnswered INT
Important: Has to ignore multiple answers to the same question
Is there a single query that can automatically update the quest开发者_如何学CionsAnswered
column in the users
table?
UPDATE users AS u
SET questionsAnswered = (
SELECT COUNT(DISTINCT question)
FROM questionAnswers AS q
WHERE q.user=u.user)
This assumes that all the users in questionsAnswered
already have an entry in users
. (This will update users
, but it won't insert any new rows.)
精彩评论