У меня есть этот запрос 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
и дляНемного предыстории исходной проблемы.