У меня есть таблица CATEGORY, где у меня есть категории. У каждой категории могут быть подкатегории (или дети). Если это основная категория parent = 0, в противном случае она равна родительскому идентификатору. Например,Поиск иерархических данных
ID |Category |Parent
1 Fruit 0
2 Apple 1
3 Orange 1
4 Vegetable 0
5 Onion 4
6 Tomato 4
7 Red Apple 2
8 Green Apl 2
Таким образом, используя код, который я могу создать следующий список
Fruit
- Apple
- Red Apple
- Green Apl
- Orange
Vegetable
- Onion
- Tomato
У меня есть другие SOLD_ITEMS таблицы, где я использую CATEGORY.ID.
Вопросы
1) Может кто-то помочь мне выполнить запрос из SOLD_ITEMS WHERE CATEGORY.ID равно Фрукты или любой из его? Порожденных
Возможно, у меня есть возможность кодировать его за пределами SQL и генерировать строку запроса, например: WHERE CATEGORY.ID IN (1,2,3,4,7,8), мне просто интересно, есть ли альтернатива он в SQL-запросе
2) Использование SQL, есть ли запрос, в котором я могу получить верхнюю часть самого родителя с указанием CATEGORY.ID? например Для 8 (Green Apl) будет 1. Для 4 (Овощ) будет 4.
Возможно, я затрудняюсь с использованием SQL, я не могу. Я пока не настолько эффективен с использованием SQL.
Ваш вопрос с тремя различными СУБД. Возможное решение зависит от конкретной СУБД, которую вы используете. –
Извините, Энди Корнеев, я использую базу данных VB.net и MS-Access –
Я бы настоятельно рекомендовал читать и внедрять модель Nested Set для иерархии в базах данных. https://en.wikipedia.org/wiki/Nested_set_model – GavinP