我有两张 table 。部门及员工如下:
Department |----------------------| | Id | Name | |---------|------------| | 10 | Admin | |---------|------------| | 11 | IT | |---------|------------|
Employee |----------------------|--------------| | Id | Name | DepartmentId | |---------|------------|--------------| | 1 | Peter | 10 | |---------|------------|--------------| | 2 | Scott | 11 | --------------------------------------
I need the JSON details of each department individually as below:
|----------------------|------------------------------------------------------------ |
| DepartmentId | JSONDeatails |
|--------------------- |------------------------------------------------------------ |
| 10 |{"id": 10,"name": "Admin","Emp": [{"Id": 1,"name": "peter"}]}|
|----------------------|-------------------------------------------------------------|
| 11 |{"id": 11,"name": "IT","Emp":[{"Id": 2,"name": "scott"}]} |
|----------------------|-------------------------------------------------------------|
我尝试了下面的查询,它将整个表数据作为一个 JSON 返回。
SELECT D.Id, D.name, Emp.Id, Emp.Name FROM Department D
LEFT JOIN Employee Emp ON D.Id= Emp.DepartmentId FOR JSON AUTO
我收到的回复如下:
JSON_F52E2B61-18A1-11d1-B105-00805F49916B
[{"id": 10,"name": "Admin","Emp": [{"Id": 1,"name": "peter"}]},{"id": 11,"name": "IT","Emp":[{"Id": 2,"name": "scott"}]}]
最佳答案
经过多次试验,我可以找出为每个单独记录提供 JSON 的查询。这是:
SELECT D.Id,
(SELECT Di.Id, Di.name ,Emp.Id, Emp.Name FROM Department Di
LEFT JOIN Employee Emp ON Di.Id= Emp.DepartmentId
WHERE Di.Id = D.id FOR JSON AUTO) AS Details
FROM Department D
关于sql-server-2016 - 分别获取每条记录的 JSON 格式的 SQL Server 记录详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61714063/