【发布时间】:2020-04-28 17:24:54
【问题描述】:
项目表
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
但是, 我也在尝试从所有子类别中获取项目, IE; 1.请求父类时必须显示父类、子类和孙子类的所有内容 2.当请求子类别时,必须显示子及其子(孙子)的所有内容
期待; 当请求类别 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
如何修改我的查询以获取类别中的所有项目及其所有子类别?
【问题讨论】:
-
你用的是什么版本的mysql?
-
mysql 5.7.24 和 v10.1 MariaDB
标签: mysql parent-child hierarchy hierarchical-data