如何格式化从SQL查询返回的数据的结构

时间:2018-06-22 09:50:49

标签: mysql sql json

我从SQL查询中获得了以下数据:

addon_id | addon_name | addon_category_id
---------+------------+------------------
       1 | abc        |                10
       2 | def        |                20
       3 | ghi        |                10

现在,我必须以以下JSON格式发送此文件,并根据addon_category_id对插件进行分组:

[
 {
  addon_category_id: 10,
  addons:
  [
   {
    addon_id: 1,
    addon_name: abc
   },
   {
    addon_id: 3,
    addon_name: ghi
   }
  ]
 },
 {
  addon_category_id: 20
  addons:
  [
   {
    addon_id: 2,
    addon_name: def
   }
  ]
 }
]

我该怎么做?这背后的逻辑是什么?我是否必须使用for循环以编程方式完成此操作,还是有其他方法?

1 个答案:

答案 0 :(得分:0)

如注释中所述,它取决于您使用的编程语言。在SQL Server 2016中,您可以使用 FOR JSON AUTO

SELECT  b.addon_category_id  ,addons.addon_id ,  addons.addon_name
FROM addon a
JOIN  addon addons
ON a.addon_category_id  = b.addon_category_id  
FOR JSON AUTO;