【发布时间】:2012-03-06 02:30:38
【问题描述】:
我将从结尾开始:我想要得到如下所示的 JSON:
"Message": "Hello World",
"Comments": [
{
"text": "Comment 1",
},
{
"text": "Comment 2"
}
],
要获取 JSON,我会将结果作为“消息”并在其上调用此函数。
System.Web.Script.Serialization.JavaScriptSerializer oSerializer =
new System.Web.Script.Serialization.JavaScriptSerializer();
string sJSON = oSerializer.Serialize(messages);
我想知道的是如何像这样从数据库中获取数据,以便 Comments 位于子集合中,就像您在上面的 JSON 中看到的那样。
我有 2 个表,第一个表保存消息,另一个保存 cmets。
cmets 表中的每个注释都有一个带有messageID 的外键。
目前,我使用 2 个 SQL 查询来执行此操作 - 一个用于消息,第二个用于每条消息 - 我只调用 GetCommentByID 查询。这 2 个 SQL 查询很浪费,因为它的复杂度是 O(N^2)。
我想知道我是否可以通过单个 SQL 查询来实现这一点。
我只是不确定 SQL Server 是否能够返回子数据集或数组。
我也在这里阅读了这个问题: mysql: select the last 10 messages and for each message the last 3 replies
似乎唯一的方法是获取一个包含所有消息和 cmets 的数据集,然后在服务器上对其进行操作。
这是我的表的架构:
消息:
ID, Description
评论:
ID, MessageID, Body
我可以通过单个 SQL 查询来实现吗?
【问题讨论】:
标签: sql sql-server