Запрос:
SELECT 'category'.*,
Group_concat(DISTINCT 'sub_category'.'english_name' ORDER BY
'sub_category'.'order_number'
ASC) AS 'sub_category',
Group_concat(DISTINCT 'sub_category'.'id' ORDER BY
'sub_category'.'order_number'
ASC) AS 'sub_category_id',
Group_concat('sub_category'.'status' ORDER BY
'sub_category'.'order_number' ASC)
AS 'sub_category_status'
FROM 'category'
LEFT JOIN 'item_category'
ON 'item_category'.'category' = 'category'.'id'
LEFT JOIN 'sub_category'
ON 'sub_category'.'category' = 'category'.'id'
GROUP BY 'category'.'id'
ORDER BY 'category'.'order_number' ASC
Проблемная линия:
Group_concat (
sub_category
.status
ORDER BYsub_category
.order_number
ASC)
Результат:
(
[ID] => 22
[Create_date] => 2017-11-20
[Created_by] => 0
[English_name] => Pens & refills
[Gujarati_name] => પેન અનેર રીફીલ
[Header] => False
[Sidebar] => False
[Order_number] => 2
[Status] => Close
[sub_category] => Botteled Ink,Fountain Pens,gel ink rollball pens
[sub_category_id] => 54,55,56
[sub_category_status] => Open,Open,Open,Open,Open,Open,Open,Open,Open,Open,Open,Open,Open,Open,Open,Open,Open,Open
)
Как вы можете видеть, я использовал DISTINCT, где я могу использовать. Статус открыт или закрыт, поэтому DISTINCT не поможет в этом столбце. Может кто-нибудь скажет мне, как я могу решить эту проблему?
Вы пропустили DISTINCT
Для sub_category_status
Вот почему вы получаете дублирующее значение
Group_concat('sub_category'.'status' ORDER BY
'sub_category'.'order_number' ASC)
AS 'sub_category_status'
ADD DISTINCT
для вышеупомянутого столбца также
Group_concat( DISTINCT 'sub_category'.'status' ORDER BY
'sub_category'.'order_number' ASC)
AS 'sub_category_status'
item_category
? Вы не используете его нигде. Чего ты пытаешься достичь?DISTINCT
даже не понадобится, если вы неitem_category
все свои подкатегории, присоединившись кitem_category
.