Иерархические данные в MySQL
У меня есть что-то вроде дерева, происходящее в моей базе данных MySQL.
У меня есть база данных, которая имеет категории, и у каждой категории есть подкат. Я сохраняю все категории в одной таблице, поэтому столбцы выглядят так:
*categories table*
id | name | parent_id
1 | Toys | 0
2 | Dolls | 1
3 | Bikes | 1
Каждый элемент в моей базе данных относится к одной из этих категорий:
*items table*
item | category_id
barbie | 2
schwinn| 3
Проблема в том, что если кто-то хочет увидеть все ИГРУШКИ (родительскую категорию), каков наилучший способ получить информацию из базы данных предметов? Единственный способ, которым я знаю, как сделать что-то вроде
SELECT *
FROM items
WHERE category_id = 2
JOIN SELECT *
FROM items
WHERE category_id = 3
etc...
Но если бы у меня было около 10 категорий в разделе «Игрушки», я должен был бы выполнить это объединение и запросить 10 раз.
Есть ли лучший способ справиться с этим?