【问题标题】:How to format the structure of data returned from SQL query如何格式化从 SQL 查询返回的数据结构
【发布时间】:2018-06-22 09:50:49
【问题描述】:

我从我的 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 循环以编程方式执行此操作,还是有其他方法?

【问题讨论】:

  • 这取决于您用于检索此数据的语言。您也可以使用通用工具,例如csvjson.com/sql2json
  • 感谢@JuanN,但我需要更改数据结构,如上所示。
  • 这取决于您使用的编程语言和数据库系统。
  • 您使用的是哪个DBMS product? “SQL”只是一种查询语言,而不是特定数据库产品的名称。请为您正在使用的数据库产品添加tag postgresql, oracle, sql-server, db2, ...

标签: mysql sql json


【解决方案1】:

如 cmets 中所述,这取决于您使用的编程语言。在 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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-06
    • 2016-12-31
    相关资源
    最近更新 更多