我正在使用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。
请帮助!!
答案 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