我有一个投票系统,表格如下:
answers
-----------
int id
text content
results
-----------
int id
int answers_id
我想要一个选择,所以即使没有投票(结果),我也可以看到答案和回复的数量。 我试过这样的事情:
SELECT
count(results.answers_id), answers.content
from answers
left outer join results
on answers.id = results.answers_id
group by results.answers_id
但它没有以0票(结果)得到答案。
答案 0 :(得分:0)
尝试
SELECT
count(result.answers_id) as acount, answers.content
from answers
left inner join results
on answers.id = acount
答案 1 :(得分:0)
使用子查询
SELECT a.*,
( SELECT COUNT(*)
FROM results r
WHERE a.id = r.answers_id
)
FROM answers a
答案 2 :(得分:0)
试试这个,按答案的ID分组。
SELECT
COUNT(results.answers_id) AS NumberOfAnswers, answers.content
from answers
left join results
on answers.id = results.answers_id
group by answers.id
为了确保您没有2行具有相同内容,请group by answers.content
SELECT
COUNT(results.answers_id) AS NumberOfAnswers, answers.content
from answers
left join results
on answers.id = results.answers_id
group by answers.content
答案 3 :(得分:0)
使用Ifnull
并在您的分组语句中将其更改为answers.content
SELECT
IFNULL(count(results.answers_id),0), answers.content
from answers
left outer join results
on answers.id = results.answers_id
group by answers.content
答案 4 :(得分:0)
我认为解决方案是使用IFNULL
SELECT IFNULL(COUNT(r.answers_id), 0),
a.content
FROM answers AS a
LEFT JOIN results AS r ON a.id = r.answers_id
GROUP BY r.answers_id
答案 5 :(得分:0)
这应该做的工作:
SELECT count(results.answer_id), answers.content
from answers left outer join results on answers.id = results.answer_id
group by answers.content;