У меня в моей базе данных 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
Проблема в том, если кто-то хочет видеть все TOYS (родительская категория), что является лучшим способом получить информацию из базы данных элементов? Единственный способ я знаю, как это сделать что-то вроде
SELECT *
FROM items
WHERE category_id = 2
JOIN SELECT *
FROM items
WHERE category_id = 3
etc...
Но если бы я был, как 10 категорий под игрушки, то я должен был бы сделать это присоединиться и запросов в 10 раз.
Есть ли лучший способ справиться с этим?
Тех соединения является недопустимым синтаксисом SQL (и если вы исправить синтаксис, например, с помощью скобки вокруг второго выбора вы получите пустой результирующий набор); может быть, вы имеете в виду UNION? –