Postgres Select Query - группировка одинаковых объектов - PullRequest
0 голосов
/ 02 ноября 2018

Рассмотрим запрос как показано ниже:

select 
    row_to_json(t) 
from (
    select 
        tablex.id, 
        valuetable.id as "valuetable.id",
        valuetable.val_string as "valuetable.val_string" 
    FROM TableA AS tablex 
    INNER JOIN TableB AS valuetable ON tablex.id = valuetable.id  
    WHERE tablex.code= '123')t;

Это при попадании из postgres возвращает ответ как

{id:111,valuetable.id:222,valuetable.val_string:"xx"}

Когда я запускаю тот же запрос:

select 
    tablex.id,
    valuetable.id as "valuetable.id",
    valuetable.val_string as "valuetable.val_string" 
FROM TableA AS tablex 
INNER JOIN TableB AS valuetable ON tablex.id = valuetable.id  
WHERE tablex.code= '123'

с sequelize, он будет отвечать как

Когда я запускаю тот же запрос:

{id:111,valuetable:{id:222,val_string:"xx"}}

что ожидается.

Не могли бы вы подсказать, как генерировать такой ответ также из postgres, или потребуются какие-либо манипуляции со стороны java end?

1 Ответ

0 голосов
/ 02 ноября 2018

Вместо row_to_json, попробуйте использовать json_build_object , вот так:

select 
   json_build_object(
       'id', tablex.id, 
       'valuetable', json_build_object(
           'id', valuetable.id,
           'val_string', valuetable.val_string)
   )
FROM TableA AS tablex 
INNER JOIN TableB AS valuetable ON tablex.id = valuetable.id  
WHERE tablex.code= '123'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...