如何显示我的论坛中发布的答案数量?

时间:2015-01-08 15:53:49

标签: java mysql sql jsp servlets

我正在使用Java技术创建一个论坛。实际上它几乎接近完成但问题是我想在我的论坛中显示答案的数量。好的,让我们深入了解。

首先,我创建了一个名为index.jsp的文件,我们可以看到所有问题。对于e.g请查看stackoverflow.com,我们在一个问题中也会看到所有问题numbers of answers posted。这就是我想要展示到我的index.jsp。

我使用select * from question_table..提取所有问题。实际上是我的view question文件。我使用创建在question_id中的answer's table表来获取答案。您非常清楚地表示答案,我们需要将相同的question_id保存到答案表以及问题表中。

e.g:

看看这张表我设计了同样的东西:

create table if not exists thread_question(
question_id INT NOT NULL auto_increment,
question_title VARCHAR(500) NOT NULL,
question VARCHAR(100000) NOT NULL,
question_dateTime VARCHAR(100) NOT NULL,
PRIMARY KEY(question_id)
);

create table if not exists thread_answer(
answer_id INT NOT NULL auto_increment,
question_id INT NOT NULL references thread_question(question_id),
answer VARCHAR(100000) NOT NULL,
answer_dateTime VARCHAR(100) NOT NULL,
PRIMARY KEY(answer_id)
); 

你也可以在这里看到,question_id被保存到两个表中。同样的过程我在这里使用。

现在我想在主页中显示我的答案数量。任何的想法?什么可以在这里使用。我真的卡在这里请帮忙!

当然,帮助将不胜感激!!

编辑:

以下是我的完整代码:

create table if not exists thread_question(
question_id INT NOT NULL auto_increment,
first_name VARCHAR(100) NOT NULL,
last_name VARCHAR(100) NOT NULL,
question_title VARCHAR(500) NOT NULL,
question VARCHAR(100000) NOT NULL,
question_dateTime VARCHAR(100) NOT NULL,
PRIMARY KEY(question_id)
);

create table if not exists thread_answer(
answer_id INT NOT NULL auto_increment,
question_id INT NOT NULL references thread_question(question_id),
first_name VARCHAR(100) NOT NULL,
last_name VARCHAR(100) NOT NULL,
answer VARCHAR(100000) NOT NULL,
answer_dateTime VARCHAR(100) NOT NULL,
PRIMARY KEY(answer_id)
);

这是SCREENSHOT

请帮助!!

2 个答案:

答案 0 :(得分:2)

使用内部联接来获取每个问题的答案数

   SELECT thread_question.question_id, COALESCE(sub.counts,0) AS NumerOfAnswer 
   FROM thread_question LEFT JOIN (
        SELECT question_id, COUNT(answer_id) AS counts
        FROM thread_answer
        GROUP BY question_id
    ) sub ON thread_question.question_id = sub.question_id
  ORDER BY NumerOfAnswer

答案 1 :(得分:0)

整个论坛中所有答案的数量?

SELECT COUNT(answer_id)
FROM thread_answer

显示提取问题以供显示的查询中的答案数量?

SELECT <...your selected columns...>, COALESCE(a.counts, 0) AS counts
FROM thread_question q
    LEFT JOIN (
        SELECT question_id, COUNT(answer_id) AS counts
        FROM thread_answers
        GROUP BY question_id
    ) a ON q.question_id = a.question_id