如何计算和回显值

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

【讨论】:

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

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

Ajax 调用返回整个页面而不仅仅是回显值

回显值并在循环内加在一起以形成总数[重复]

编辑表单正确回显之前保存的数据,但不更新表单字段

条件查询N多的情况下,回显解决方法。

使用 mysql 和 php 从虚拟值回显 AVG 值

单击收音机并将值回显到 php(wordpress 主题)