如何从两个表生成json

时间:2019-04-16 16:22:19

标签: json sql-server

我正在使用SQL Server2008。我必须使用来自两个表的数据手动创建JSON,这两个表之间是一对多的关系。因此,我必须首先从表A中获取一行,然后从表B中获取与表A中的行相对应的所有行,并使用串联生成JSON。我已经完成了对单个表中数据的处理。我正在考虑创建一个临时表并将表A数据放在首位。然后循环遍历并从表B中获取数据,并将它们连接成JSON。可能会有更好的方法。任何线索将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可以使用FOR JSON实现此目的

DROP TABLE IF EXISTS #tempA;
DROP TABLE IF EXISTS #tempB;

Create TABLE #tempA(ID INT IDENTITY(1,1), ValueOfA VARCHAR(50))
Create TABLE #tempB(ID INT IDENTITY(1,1), ValueOfB VARCHAR(50))

INSERT INTO #tempA VALUES ('Testing A1'), ('Testing A2'), ('Testing A3'), ('Testing A4'), ('Testing A5')
INSERT INTO #tempB VALUES ('Testing B1'), ('Testing B2'), ('Testing B3'), ('Testing B4'), ('Testing B5')

SELECT a.ID as 'ID', a.ValueOfA as 'A', b.ValueOfB as 'B'
FROM #tempA a
INNER JOIN #tempB b ON a.ID = b.ID
FOR JSON PATH