如何计算和回显值

Posted

技术标签:

【中文标题】如何计算和回显值【英文标题】:How to count and echo the value 【发布时间】:2015-02-14 04:09:17 【问题描述】:

我有一个包含这两个表的数据库 - questionsanswers

表定义

questions - id, question, asked_by
answers - id, question_id(foreign key), answers, sent_by

我想计算并回显每个问题的答案总数。

样本数据

question
id   question   asked_by
1    how r u    emma
2    r u ok     sam

answer
id   question_id answer sent_by
1        2       good    john
2        1       fine    sam
3        2       WTG     biggie

在显示所有问题的页面上,我想按每个问题和答案的数量来写。 question2= 2question1=1 的答案数。

【问题讨论】:

好吧,对于这样的情况,我更喜欢 join 从 2 个表中选择行 Read this tutorial on join 【参考方案1】:

对于每个带有GROUP BY 子句的问题,您应该使用INNER JOINCOUNT 条目:

SELECT t1.id
     , COUNT(*)
FROM question t1
JOIN answer t2 ON t1.id = t2.question_id
GROUP BY t1.id

【讨论】:

效果很好,但没有得到任何答案的问题不会显示在问题页面上【参考方案2】:

尝试这种方式先COUNTJOIN,然后GROUP BY

    SELECT q.question,count(*) AS answers FROM question q INNER JOIN answer a ON q.id=a.question.id
GROUP BY q.id

【讨论】:

没有得到任何答案的问题不会显示在问题页面上。谢谢以上

以上是关于如何计算和回显值的主要内容,如果未能解决你的问题,请参考以下文章