请教一个sql语句问题

来源:百度知道 编辑:UC知道 时间:2024/06/18 03:22:43
两个表,字段和数据如下
question(qid,title)
1 aaa
2 bbb
3 ccc
4 jjj
5 ppp

answer(aid,qid,content)
1 1 ddd
2 1 eee
3 1 fff
4 2 ggg
5 2 hhh
6 3 jjj

如何写sql语句或存储过程得到如下结果:

qid title count(aid)

1 aaa 3
2 bbb 2
3 ccc 1
4 jjj 0
5 ppp 0

SELECT question.qid, question.title, COUNT(answer.aid) AS num
FROM answer INNER JOIN
question ON answer.qid = question.qid
GROUP BY question.qid, question.title

我用上面的sql语句 只可以 得到
qid title count(aid)

1 aaa 3
2 bbb 2
3 ccc 1
还有
4 jjj 0
5 ppp 0
这两行数据没有查询出来,哪位高手有办法解决这个问题呢?

你这样 做 等值连接 就会 造成两表中如果一表中没有的数据 丢失

要想保存 可起使用左连接 (left out join on)或 全部连接( full join on )(也许不同数据库 语法不大一样) 来修改这个问题。(有的 数据库不用写那个out)

简单修改一个地方:
SELECT question.qid, question.title, COUNT(answer.aid) AS num
FROM question left join
answer ON answer.qid = question.qid
GROUP BY question.qid, question.title