MYSQL查询获取数组列表,每行有不同的子行



假设我们有三个表

category_level_one

cat_name
SELECT JSON_OBJECT('data', JSON_ARRAYAGG(output)) results
FROM (
SELECT JSON_OBJECT(
'name', p2.sub_cat_name, 
'cat_l2_id', p2.id,
'cat_l1_id', p1.id,
'namel1' , p1.cat_name,
'cat1', JSON_OBJECT("id" , p1.id, 'name', p1.cat_name ), 
'catl2', JSON_ARRAYAGG(
JSON_OBJECT(
'cat_l2_id', p2.id, 
'name', p3.sub_sub_cat_name, 
'cat_l3_id', p3.id
)
)
) output,
p1.id as 'cat1',
p2.id as 'cat2',
p3.id as 'cat3' 
FROM category_level_two  p2
JOIN category_level_three p3
ON p2.id = p3.cat_l2_id  
JOIN category_level_one p1
ON p2.cat_l1_id = p1.id  
WHERE p2.id IN (2,4)
GROUP BY p2.id
) x

最新更新