【发布时间】:2014-11-10 18:58:46
【问题描述】:
我有一个页面,其中列出了表 vote_option 中的多个民意调查及其所有投票选项。我使用表user_vote 来存储用户的投票记录。我想从该表中检索每次投票中每个投票选项的投票结果。谁能告诉我如何将GROUP_CONCAT 与SELECT COUNT(*) FROM user_vote GROUP BY product_id 一起使用,以便结果如下:
Poll_TITLE VOTE_OPTION IMG VOTE_COUNT <---how to get this column
Title A Product A,Product B,Product C imgA,imgB,imgC 2,0,1
Title B Product A,Product B,Product D imgA,imgB,imgD 0,1,0
Title C Product D,Product E imgD,imgE 1,0
表架构:
CREATE TABLE poll
(`poll_id` int,`title`varchar(30))
;
INSERT INTO poll
(`poll_id`,`title`)
VALUES
(1,'Title A'),
(2,'Title B'),
(3,'Title C')
;
CREATE TABLE product
(`product_id` int,`product_name` varchar(30),`img`varchar(30))
;
INSERT INTO product
(`product_id`,`product_name`,`img`)
VALUES
(1,'Product A','imgA'),
(2,'Product B','imgB'),
(3,'Product C','imgC'),
(4,'Product D','imgD'),
(5,'Product E','imgE')
;
CREATE TABLE vote_option
(`poll_id` int,`product_id` int)
;
INSERT INTO vote_option
(`poll_id`,`product_id`)
VALUES
(1,1),
(1,2),
(1,3),
(2,1),
(2,2),
(2,4),
(2,2),
(3,4),
(3,5)
;
CREATE TABLE user_vote
(`poll_id` int,`product_id` int,`user_id` int)
;
INSERT INTO user_vote
(`poll_id`,`product_id`,`user_id`)
VALUES
(1,1,1),
(1,1,2),
(1,3,2),
(2,2,1),
(3,4,1)
;
CREATE TABLE user
(`user_id` int,`user_name` varchar (30))
;
INSERT INTO user
(`user_id`,`user_name`)
VALUES
(1,'Tom'),
(2,'Sally')
;
【问题讨论】: