Иерархические данные в 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 раз.

Есть ли лучший способ справиться с этим?

Ответы на вопрос(7)

Ваш ответ на вопрос