繁体   English   中英

如何使用组concat获取第三张表计数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM