У меня довольно простые отношения «один ко многим». Есть «узлы», и каждый узел относится к нескольким «опциям». Я делаю довольно простое соединение, и мои результаты, как это:Есть ли более эффективный способ сделать отношения «один ко многим», чем иметь «одно» значение в каждой возвращаемой строке?
content | optionid | content
--------------------------+----------+------------------
This is the node content | 1 | This is option 1
This is the node content | 2 | This is option 2
Однако, потому что это один-ко-многим, каждая строка имеет то же содержание узла: This is the node content
. Кажется излишним возвращать то же значение с каждой строкой, когда мне это нужно только один раз. Есть ли способ лучше?
Есть довольно много различных агрегатных функций [] (https://www.postgresql.org/docs/9.5/static/functions-aggregate.html) вы могли бы использовать. Например, 'json (b) _object_agg' может работать для вас хорошо, если' optionid' уникален. – Sevanteri
Является ли избыточность причиняющим вам вред? Например, это замедляет вас? –
@Sevanteri Спасибо, что рассказали мне об этом! 'jsonb_object_agg' делает именно то, что я хотел. Если вы опубликуете это в качестве ответа, я соглашусь с ним. – Markasoftware