道歉 - 我不擅长SQL。也许这是一个简单的查询 - 我不知道。
我所拥有的是一个基本的论坛表 - 例如
id poster title type content postedon parentID
在此方案中,如果用户提出问题,则为type = 0,如果是答案,则键入= 1.如果条目是答案,则将parentID更新为问题行上的id。
我想要做的就是在SQL查询中提取问题,以及一个包含问题答案总数的数字 - 例如结果行看起来像
jerry@dumb.com "how do I do this?" 4
其中(4)将是我的问题的总答案。我想在一个查询中执行此操作 - 无需先提出问题,然后对每个问题ID运行重复查询以查找答案的计数。
我该怎么做?
谢谢大家,
(PS - 有没有办法在Linq表达式中进行查询?如果可以的话,我会这样做而不是存储过程)
答案 0 :(得分:4)
select ft1.poster, ft1.title, count(ft2.id)
from ForumTable ft1
left join ForumTable ft2
on ft1.id = ft2.parentID
and ft2.type = 1
where ft1.type = 0
group by ft1.poster, ft1.title
答案 1 :(得分:0)
你可以尝试一下,看看它是否符合你的需求吗?
SELECT poster, title, ISNULL(X.NoOfAnswers,0)
FROM forum LEFT OUTER JOIN
(SELECT parentId, COUNT(id) as NoOfAnswers
FROM forum
GROUP BY parentId) X
ON forum.id = X.parentId
WHERE forum.type = 0
答案 2 :(得分:0)
SELECT A.poster, a.acontent, COUNT(B.parentId) AS Answers
FROM forum B, forum A
WHERE B.atype = 1 AND B.parentId = A.id
GROUP BY a.id, a.poster, a.acontent