簡體   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