我是 MySQL 新手,找不到正确的答案,所以我希望你们能帮助我。
我有3张桌子。
我尝试了很多方法,但我不知道如何创建以下 JSON 列。
[{
"modu_num": 1,
"modu_title": "Module 1",
"data_fields": [
{
"data_num": 1,
"data_title": "data title 1"
},
{
"data_num": 2,
"data_title": "data title 2"
},
{
"data_num": 3,
"data_title": "data title 3"
}
]
},
{
"modu_num": 2,
"modu_title": "Module 2",
"data_fields": [
{
"data_num": 4,
"data_title": "data title 4"
},
{
"data_num": 5,
"data_title": "data title 5"
},
{
"data_num": 6,
"data_title": "data title 6"
}
]
}
]
作为第二列,我只想获取 appli_num 列。
如果您需要更多信息,请告诉我! 预先感谢!
我已经尝试过这个以及更多其他方法,但它不能满足我的需求。 链接
构建多层嵌套的 JSON 数组聚合时,必须有多层子查询来生成每一层的聚合。
SELECT JSON_PRETTY(
JSON_ARRAYAGG(
JSON_OBJECT(
"modu_num", m.modu_num,
"modu_title", m.modu_title,
"data_fields", t.data_fields
)
)
) AS m
FROM (
SELECT appli_num, modu_num,
JSON_ARRAYAGG(
JSON_OBJECT(
"data_num", data_num,
"data_title", data_title
)
) AS data_fields
FROM Data_fields
GROUP BY appli_num, modu_num
) AS t
JOIN Modules m USING (modu_num);