MySQL 创建汇总表?

标签 mysql

我有一个问题的答案表:

table questionAnswers:
    user VARCHAR
    question VARCHAR
    answerValue VARCHAR

重要提示:用户可以发布问题的多个答案

我想将用户回答的问题数量收集到表中:

table users
    user VARCHAR
    questionsAnswered INT

重要提示:必须忽略同一问题的多个答案

是否有一个查询可以自动更新 users 表中的 questionsAnswered 列?

最佳答案

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

这假设 questionsAnswered 中的所有用户都已在 users 中拥有条目。 (这将更新users,但不会插入任何新行。)

关于MySQL 创建汇总表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3221751/

相关文章:

php - 具有相同内容的自动跨行 (php/mysql/jQuery)

mysql 在一条语句中选择带有限制的最高和最低值

mysql - 为什么这个查询的 MySQL 是 "using_where"?

mysql - MyType 列中值的最大 2 结果

php - 调试 LAMP/CakePHP 站点内存泄漏?

PHP 将格式错误的时间戳格式更改为秒数

c# - 连接字符串到实时数据库 asp.net C#

mysql - 使用范围和多重联接优化 MySQL 查询

php - 使用php合并3个mysql表

php - MySQL 数据库的默认字段值