2015-06-27 3 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 

Это мой стол архитектура. Я хочу получить идентификатор пользователя, используя группу concat в соответствии с идентификатором продукта. означает, что идентификатор продукта равен 1, тогда весь идентификатор пользователя просто появляется (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

удивительной его работы. Спасибо Рахул. – Arya