如何获取数组中INNER JOIN的输出?

时间:2018-12-28 09:59:53

标签: sql postgresql join sequelize.js

我有这个SQL查询

 '(SELECT “A”.”id" AS “aId”, “A”.”name”, “A”.”updatedAt" AS “aUpdatedDate”, “B”.”name” AS “b.name”, “B”.”status” AS “b.status”,  FROM “A” INNER JOIN “B” ON “A”.”id" = “B”.”a_id” WHERE EXISTS (SELECT “status” FROM “B” WHERE “B”.”a_id” = “A”.”id" AND “B”.”status" IN (‘pending’, ‘failed’))) OFFSET ? LIMIT ?’;

这将返回所需的数据,但是问题是我很想以这种格式获取数据。这是预期的输出:

{
    aid: 1,
    name: 'nameOne',
    aUpdatedDate: '2018-09-10',
    Bs: [
        {
             name: 'b-one',
             status: 'completed'
        },
        {
             name: 'b-two',
             status: 'pending'
        }
    ]
}

,但输出代替了B的每个实例,后者依次复制了返回的A。返回的实际输出是这样的

{
    aid: 1,
    name: 'nameOne',
    aUpdatedDate: '2018-09-10',
    'b.name': 'b-one',
    'b.status': 'completed'
},
{
    aid: 1,
    name: 'nameOne',
    aUpdatedDate: '2018-09-10',
    'b.name': 'b-two',
    'b.status': 'pending'
},

有关上下文,您可以查看StackOverflow链接,该链接解释了为什么我使用WHERE EXISTS子句以及有关初始问题的背景知识。

1 个答案:

答案 0 :(得分:0)

我认为您正在使用path('subscription/<int:pk>', SubChannelSubscriptionView.as_view(), name='subscription'), ,请将其删除或设为false:

raw : true

你很好。