- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 2 个表:
表组 - id (bigserial), name (varchar), mails (json)
表邮件 - id (bigserial), name (varchar)
我的分组数据
1, en-mails, [{"id" : 1}, {"id" : 2}]
2, fr-mails, [{"id" : 3}, {"id" : 4}]
我的邮件数据
1, mail1@gmail.com
2, mail2@gmail.com
3, mail3@gmail.com
4, mail4@gmail.com
我的查询:
SELECT tg.name, tm.mail
FROM groups as tg
CROSS JOIN LATERAL json_array_elements (tg.mails :: json) group_mails
LEFT OUTER JOIN mails as tm ON (group_mails ->> 'id') :: BIGINT = tm.c_id
我的结果
Array ( [name] => en-mails [mail] => mail1@gmail.com )
Array ( [name] => en-mails [mail] => mail2@gmail.com )
Array ( [name] => fr-mails [mail] => mail3@gmail.com )
Array ( [name] => fr-mails [mail] => mail4@gmail.com )
我的问题 - 查询如何返回:
Array ( [name] => en-mails [mail] => [mail1@gmail.com, mail2@gmail.com] )
Array ( [name] => fr-mails [mail] => [mail1@gmail.com, mail2@gmail.com] )
提前致谢
最佳答案
使用聚合函数array_agg() :
SELECT tg.name, array_agg(tm.mail) as mail
FROM groups as tg
CROSS JOIN LATERAL json_array_elements (tg.mails :: json) group_mails
LEFT OUTER JOIN mails as tm ON (group_mails ->> 'id') :: BIGINT = tm.id
GROUP BY 1
name | mail
----------+-----------------------------------
en-mails | {mail1@gmail.com,mail2@gmail.com}
fr-mails | {mail3@gmail.com,mail4@gmail.com}
(2 rows)
关于PostgreSQL json_array_elements,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45714787/
我有 2 个表: 表组 - id (bigserial), name (varchar), mails (json) 表邮件 - id (bigserial), name (varchar) 我的分组
我在 Windows 上使用 PostgreSQL 9.4.5,64 位。我有一些不规则大小的数组。我想用json_array_elements展开类似下面代码的数组 with outside as
假设我有两个表: 用户组合 +--------+----------------+ | id | combination | +--------+----------------+ |
我有一个由两级数组组成的 json,例如: [ { name: "Group one", races: [ {name: "Race 1"}, {nam
如果我有这样的表达 SELECT t.json_column->>'x', nested->>'y' FROM my_table t, json_array_elements(t->'ne
我在使用 json_array_elements 函数的 django 模型中有类方法。 如果它通过浏览器执行,它工作正常。但在测试中它失败了。python manage.py 测试 Tracebac
简单的查询工作正常: SELECT json_array_elements_text('["first", "third", "second"]'::json) 但我也想以某种方式检索数组键,所以输出
我有以下查询,它从 JSON 对象中提取多列数据(facebook_results Postgres 10 column of json 数据类型)。 有时此对象中的数组包含 10,000 多个项目。
我是一名优秀的程序员,十分优秀!