[英]how to get third table count with group concat
我有三个桌子。
1)tbl_product基本表//用于存储产品信息。
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)。 接下来是,我想要每个产品的产品评论总数。 例如,如果用户ID为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
我想通过一个查询来做到这一点。我不想在开始循环后获取前一半信息而不是获取下一半信息。 我想你明白我的问题。
您可以尝试如下。 你可以得到concated用户列表,并从各自的表数,然后可以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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.