PHP MySQL Иерархия данных group_concat

Любая помощь будет потрясающей. в настоящее время получил следующий запрос MySQL:

SELECT 
  GROUP_CONCAT( sp.`slug` SEPARATOR  '/' ) 
FROM  
  `category` sn,  `category` sp 
WHERE 
  sn.lft BETWEEN sp.`lft` AND sp.`rgt` 
  AND sn.`id` =3 
ORDER BY 
  sp.`lft` ASC;

Без функции group_concat это возвращает желаемые результаты в правильном порядке. как только я применяю group_contact, порядок искажается и становится неправильным. Кто-нибудь знает, как переписать запрос, чтобы дать мне объединенный желаемый результат и в правильном порядке?

Я в растерянности по этому поводу. Кстати, кто-нибудь знает, как переписать его, используя операторы "внутреннего соединения", в отличие от двух имен таблиц, указанных в кавычках рядом друг с другом, так как я не понимаю, как они соединяют две таблицы.

1 ответ

Решение

Попробуй это:

SELECT 
  GROUP_CONCAT( sp.`slug` ORDER BY  sp.`lft` ASC SEPARATOR  '/' ) 
FROM  
  `category` sn,
INNER JOIN  `category` sp 
  ON sn.lft BETWEEN sp.`lft` AND sp.`rgt`
WHERE    
  sn.`id` =3 
Другие вопросы по тегам