PHP MySQL категории товаров - PullRequest
       1

PHP MySQL категории товаров

1 голос
/ 22 августа 2011

Я пытаюсь отобразить список элементов с их именем и всеми категориями, к которым они принадлежат.

Моя структура базы данных:

Items table with Id, Item_Name.
Categories table with Id, Category_Name
Items_Categories table with Id, Item_id, Category_id.

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

Ответы [ 4 ]

2 голосов
/ 22 августа 2011

Вам необходимо использовать функцию GROUP_CONCAT, которая доступна в mysql:

select i.item_name, group_concat(c.category_name) as categories
from items i
inner join items_categories ic on i.id = ic.item_id
inner join categories c on ic.category_id = c.id
group by i.item_name
1 голос
/ 22 августа 2011
SELECT i.Item_Name, GROUP_CONCAT(c.Category_Name) AS Category_List
FROM Items AS i
LEFT OUTER JOIN (
  Items_Categories AS ic 
  INNER JOIN Categories AS c ON ic.Category_id = c.Id
) ON i.Id = ic.Item_id
GROUP BY i.Id;
1 голос
/ 22 августа 2011

Должен сказать, что я не проверял этот запрос, но он должен выглядеть примерно так:

SELECT i.Id, i.Item_name, GROUP_CONCAT(c.Category_Name) AS category_list
FROM Items i
JOIN Items_categories ci ON ci.Item_id = i.Id
LEFT JOIN Categories c ON c.Id = ci.Id
GROUP BY i.Id

Обратите внимание, что вы можете использовать GROUP_CONCAT для создания списка через запятую.

1 голос
/ 22 августа 2011

Я не буду писать для вас, но вам нужно использовать функцию group_concat () (MySQL).

...