假设我们有三张桌子
category_level_one
| ID | 猫名 |
|---|---|
| 1 | 物理 |
| 2 | 化学 |
category_level_two
| ID | 子猫名 | cat_l1_id |
|---|---|---|
| 1 | 有机的 | 2 |
| 2 | 无机的 | 2 |
| 3 | 身体的 | 2 |
| 4 | 力学 | 1 |
| 5 | 电和磁 | 1 |
category_level_three
| ID | 子猫名 | cat_l1_id | cat_l2_id |
|---|---|---|---|
| 1 | 原子和分子 | 2 | 3 |
| 2 | 化学平衡 | 2 | 3 |
| 3 | 醇类 | 2 | 1 |
| 4 | 醚类 | 2 | 1 |
| 5 | P 块元素 | 2 | 2 |
| 6 | 运动学 | 1 | 4 |
| 7 | 工作功率和能量 | 1 | 4 |
| 9 | 当前电力 | 1 | 5 |
SELECT category_level_two.id, category_level_two.sub_cat_name,
JSON_OBJECT("id" , category_level_one.id, 'name', category_level_one.cat_name ) AS "categotyOne",
(select json_arrayagg(JSON_OBJECT(
'id', category_level_three.id,
'name', category_level_three.sub_sub_cat_name))
from category_level_two
INNER JOIN category_level_three
ON category_level_three.cat_l2_id = category_level_two.id
WHERE category_level_two.id = 1) as "categotyThree",
FROM category_level_two
JOIN category_level_one
ON category_level_two.cat_l1_id = category_level_one.id
WHERE category_level_two.id WHERE = 1
它将提供数据为
| ID | 姓名 | 类别一 | 类别三 |
|---|---|---|---|
| 1 | 有机的 | {“id”:1,“名称”:“化学”} | [ {...} , {...}] |
如何使用属于该 catl2 的每个 categotyThree 列表获取 category_l2 的多个唯一行?