假设我们有三张桌子
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 的多个唯一行?