我正在开发一个产品评论页面,它将显示几个提交的评论以及每个评论的数量。
我想我可以用
SELECT title AS review_title,COUNT(id_group) AS Approved_reply_number
WHERE approved <> '0'
GROUP BY id_group`
但是,请阅读不可能将id值复制到insert进程的另一行的内容。因此,如果有人提交了评论,那么评论的
id_group
字段必须留空。这里是table example:
CREATE TABLE product_review
(`ID` int, `title` varchar(21), `id_group` int,`approved` int)
;
INSERT INTO product_review
(`ID`, `title`, `id_group`,`approved`)
VALUES
(1, 'AAA', Null,1),
(2, 'BBB', 1,1),
(3, 'CCC', Null,1),
(4, 'DDD', 3,0),
(5, 'EEE', 1,1),
(6, 'FFF', Null,1),
(7, 'GGG', 6,1),
(8, 'HHH',1,1),
(9, 'III', 6,1)
;
id_group
中为空的是提交的评论。其余的是回复,它们包含相应评论的id。我想知道怎样才能得到这样的输出:review_title approved_reply_number
AAA 3
CCC 0
FFF 2
最佳答案
您可以使用带有group by和where子句的self-join和count查询来筛选评论
select t.title review_title ,count(*) approved_reply_number
from product_review t
left join product_review t1 on(t.id = t1.id_group)
where t.id_group is null
group by t.id
Demo
关于mysql - 获取MySQL中的回复号码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24943814/