【发布时间】:2016-12-30 12:03:32
【问题描述】:
我在 sql 中有三个不同的表。以下是表结构。
Table1:
pId - primary key
pName
Table2:
sId - primary key
sName
pId- foreign key
Table3:
gId primary key
gName
sId - Foreign key
table1 和 table2 之间的关系是一对多,而 table2 和 table3 又是一对多。
现在我想要 table1 中每个 pId 的 table2 和 table3 中的所有数据。
我尝试了以下查询:
select p.pId, p.pName, s.sId, s.sName, g.gId, g.gName
from table1 as p,
table2 as s,
table3 as g
where p.pId=s.pId AND s.sId=g.sId
group by p.pId;
table1 的样本数据:
pId pName 1 p1 2 p2table2 的样本数据:
sId sName pId 11 s1 1 12 s1 2table3 的示例数据:
sId gId gName 11 111 克1 11 112克2我想输出如下内容:
[{pId:1,
pname:p1,
sub:[{
sId:11,
sName:s1,
grades:[{
gId:111,
gName:g1
},{
gId:112,
gName:g2
}]
}]
},
pId:1,
pname:p1,
sub:[{
sId:12,
sName:s2,
grades:[]
}]
}]
Json 结构仅供理解。
谁能给我一些帮助/提示,以便我可以得到提到的输出?
【问题讨论】:
-
剥离群组
-
(1) 用您真正使用的数据库标记您的问题。 (2) 以 SQL 格式提供样本数据和所需的输出,即作为表格。
-
“Json 结构只是为了理解”是什么意思?您是说您实际上并不想要 JSON 输出吗?请注意,关系数据库通常以行和列的形式工作。虽然某些 RDBMS 可能提供与 XML 或 JSON 相互转换的方法,但这并不是使用这些工具的自然方式。
-
@CraigYoung 我是 sql 新手,所以我提到了我想要的 Json 格式的输出。我不希望导出输出为 Json。
-
如果您不期望 Json 格式,请提供表格格式的输出
标签: sql sql-server