Объединить записи из другой таблицы в виде массива JSON - PullRequest
0 голосов
/ 22 февраля 2020

У нас есть две таблицы: «product» и «product_part». В одном продукте может быть много частей продукта, поэтому в столбце product_part есть столбец id_product, который ссылается на столбец id продукта.

Я действительно хотел бы создать MATERIALIZED VIEW из этого набора данных:

| Product | Product Part|
+-----------------------+
| Gearbox | Metal scrap |
+-----------------------+
| Gearbox | Iron scrap  |
+-----------------------+
| Gearbox | Gold scrap  |
+-----------------------+

Создает этот вывод:

| Product | Parts                                          |
+---------+------------------------------------------------+
| Gearbox | ["Metal scrap", "Iron scrap", "Gold scrap"]    |
+---------+------------------------------------------------+

1 Ответ

1 голос
/ 22 февраля 2020

Это было бы просто:

SELECT product.name, json_agg(product_part.name) as parts
FROM product
JOIN product_part ON product.id = product_part.product_id
GROUP BY product.id, product.name;

Мне пришлось немного угадать ваши фактические столбцы, но это должно быть близко.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...