2015-06-27 26 views
0

我有一个三表。
1)tbl_product基表//存储产品信息。如何获得第三个表的计数与组concat

id int(11) unsigned 
product_type_id int(11) unsigned 
product_image varchar(255) 
title varchar(255) 
description text 
price float(8,2) 
discount_price float(8,2) 
status tinyint(1) 
created_at datetime 
updated_at datetime 

2)tbl_product_review //存储每个产品的评论。

id int(10) unsigned 
product_id int(10) unsigned 
title varchar(255) 
description text 
star_rating int(1) 
status int(1) 
created_at int(10) 

3)tbl_wishlist //用来存储用户的心愿细节意味着,当用户添加任何产品到他/她的心愿保存在该表

id int(11) unsigned 
product_id int(11) unsigned 
user_id int(11) unsigned 
status tinyint(1) unsigned 
created_at datetime 

这是我的表架构项。我想根据产品ID使用组concat来获取用户的ID。意味着如果产品ID是1,那么所有用户的ID都会像这样产生(1,3,4,5)。接下来是,我想要每个产品的产品评论总数。例如,如果用户标识为1,则产品编号带有1或0(如果有或没有)。

其实我想这种类型的输出

id product_type_id title    description    price discount_price  product_image  users total_review 
1 1    Product one   Product one description 786  50    product.jpg  1,2   2 

我想通过一个单一的query.I这样做不希望开始循环后获得超过半数旁边资料后,取前半部分的信息。我想你明白我的问题。

+0

请编辑您的问题,并以表格格式添加示例数据和所需结果。 –

+0

其实我想要这种类型的输出 – Arya

+0

你已经试过了吗? – SagarPPanchal

回答

1

您可以尝试如下。您可以从相应的表中获取用户列表并计数,然后使用JOIN他们用product表获得综合结果。

select p.*,XX.total_review,XXX.user_list 
from tbl_product p join (

select product_id, count(*) as total_review 
from tbl_product_review 
grup by product_id 
) XX on product_id = XX.product_id 
join (
select product_id,group_concat(user_id) as user_list 
from tbl_wishlist 
group by product_id 
) XXX on p.product_id = XXX.product_id 
+0

真棒其工作。谢谢Rahul。 – Arya

相关问题