таблица элементов
id category_id item_title
1 2 Seagate SSHD
2 3 Seagtate 2.5 inch HDD
3 4 Western Digital 3.5 inch HDD
4 4 Toshiba 3.5 inch HDD
5 5 Generic Used Monitor
6 6 ASUS Monitor
таблица категорий
id parent_id category_title
1 0 Hardware
2 1 Hard Disks
3 2 Laptop Hard Disk
4 2 Desktop Hard Disk
5 1 Monitor
6 5 LCD Monitor
Визуальный:
-- Laptop Hard Disk
-- Hard Disks |
Harware-| -- Desktop Hard Disk
-- Monitors -- LCD Monitor
Запрос:
SELECT * FROM items_table p
JOIN categories_table cp ON p.category_id = cp.id
JOIN categories_table cc ON cp.parent_id = cc.id
WHERE cc.id = "1"
Вывод
id category_id item_title
1 2 Seagate SSHD
5 5 Generic Used Monitor
Но я тоже пытаюсь получить предметы из всех подкатегорий, т.е. 1. при запросе родительской категории должно отображаться все, что относится к категории «родитель», «ребенок» и «внучка»; 2. при запросе дочерней категории должно отображаться все, что касается «ребенок» и «ребенок (внучка)»
Expectation; при запросе для категории 1 (оборудование)
id category_id item_title
1 2 Seagate SSHD
2 3 Seagtate 2.5 inch HDD
3 4 Western Digital 3.5 inch HDD
4 4 Toshiba 3.5 inch HDD
5 5 Generic Used Monitor
6 6 ASUS Monitor
при запросе для категории 2 (жесткие диски)
id category_id item_title
1 2 Seagate SSHD
2 3 Seagtate 2.5 inch HDD
3 4 Western Digital 3.5 inch HDD
4 4 Toshiba 3.5 inch HDD
Как изменить запрос, чтобы получить все элементы из категории и все это подкатегория?