【问题标题】:Single query to get the messages and count their answers单个查询以获取消息并计算其答案
【发布时间】:2011-07-25 21:33:45
【问题描述】:

我有一个带有两个表的 mysql 数据库:

  • 消息
  • message_answers

我想获取所有消息以及每个消息的答案数量,例如:

  • 第一条消息(10 个答案)
  • 第二条消息(5 个答案)

是否可以使用单个 sql 查询?

我尝试了计数的查询和子查询,但我不知道如何从主查询中获取当前 id 以对子查询进行“WHERE”限制(例如:“message_answers.message_id = messages. id”)。

谢谢, 塞巴斯蒂安

【问题讨论】:

    标签: mysql count subquery


    【解决方案1】:
    SELECT m.message, COUNT(ma.answer_id) AS AnswerCount
        FROM messages m
            LEFT JOIN message_answers ma
                ON m.id = ma.message_id
        GROUP BY m.message
    

    【讨论】:

    • 谢谢!当我看到答案时,我认为我的问题真的很愚蠢! :)
    • 没错,只是气自己没找到。无论如何,谢谢你! ;)
    【解决方案2】:
    select m.id, count(ma.id)
    from messages m
    join join message_answer ma on ma.id = m.message_id
    group by 1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-15
      • 1970-01-01
      • 2011-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-09
      相关资源
      最近更新 更多