sql-server - 合并Azure移动服务中的多个表

标签 sql-server json azure azure-mobile-services

当用 C# 编写 Web 服务时,我们创建对象,然后序列化并将其发送到客户端。我想做一些类似于 Azure 移动服务中的事情

我有 2 张 table

  1. 订单头
  2. 订单行

Orderhead 包含订单信息(总价、客户 ID、创建日期等),OrderHead 表中的一条记录可以在 OrderRow 中包含多个项目。 Orderrow 表包含有关订购商品的详细信息(订购的商品 ID、商品名称、价格等)

如何将它们连接在一起并从自定义 API 获取单个响应。类似于下面的内容

{
    "orderheadid": "3424232",
    "totalprice": 423423,
    "orderrow": [
        {
            "itemid": "32423",
            "itemprice": 2
        },
        {
            "itemid": "23",
            "itemprice": 333
        },
        {
            "itemid": "223",
            "itemprice": 4
        }
    ]
}

或者我应该从客户端站点单独调用每个服务吗?

我知道我可以使用 mssql 对象执行 INNER JOIN 查询,但它不会返回上面给出的结构化 JSON 对象。有人可以启发我吗?

感谢您提前抽出时间

最佳答案

  1. 从表 1 中检索值并将其分配给变量
  2. 从表 2 中检索值并将其作为新属性添加到上面创建的变量中。

像下面这样的事情就可以了

var orderHead;
var orderRow;
var orderRowTable  = table.getTable('orderhead');
orderHeadTable.where({
//any other query details
    customerid:request.user.userId
    }).read({
        success:function(result){
            console.log(result.length);
            if(result.length===0){
                response.send(400, { message : 'Cart empty' });
            }else{
                orderHead = result[0];
                getOrderRows()
            }
        },
        error:function(){
            response.send(400, { message : 'error while reading order information' });
        }
    });

function getOrderRows(){
     var orderRowTable  = table.getTable('orderrow');
    orderRowTable.where({
        orderheadid:orderHead.id
    }).read({
       success:function(result){
           if(result && result.length===0){
               response.send(400, { message : 'Cart empty' });
           }else{
                orderRows = result;
                orderHead.orderRows = orderRows;
                response.send(200, orderHead);        
           }
       },
       error:function(){
           response.send(400, { message : 'error while reading order information - row' });
       } 
    });
}

关于sql-server - 合并Azure移动服务中的多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20491422/

相关文章:

json - 如何在 Swift 中使用数组根解码 JSON

azure - Azure 流量管理器上的 AKS 入口端点

azure - 如何调试从不触发的 Microsoft Graph API 订阅?

azure - 如何组合表达式和预定义变量来获取大写字符串形式的构建存储库名称?

sql - 如何从 SQL Server 中的 VARCHAR() 中删除尾随的 CHAR(0)?

sql-server - 创建触发器以限制特定日期的访问

sql - 添加列时,如何为默认值指定命名约束?

sql - 找到所有三个值都增加的第一行

javascript - 将数组对象字段数据添加到 JavaScript 中的单个对象中

javascript - 使用 JSON 和 Vega-lite 在散点图上绘制多个点