我正在尝试使用PostgreSQL数据库生成嵌套的JSON文件。我有三个表:Person_tbl,Log_tbl,Person_Log_tbl,其中后者是包含Person_id和Log_id的关联表,作为前面表的外键。我希望最终结果看起来像这样:
{
username:
log1 {
log_id: 1,
activity_id: 1,
logdate: 2016-10-25
}
log2 {
log_id: 2,
activity_id: 1,
logdate: 2016-10-26
}
username2:
....
}
现在,我有一个SQL查询,在每个用户下返回1个日志,但是返回相同的用户,无论他们拥有多少日志。我无法弄清楚如何在正确的用户下将所有日志加入到一起。这是我的SQL查询:
SELECT p.username, row_to_json(l.*)
FROM person_log_tbl pl
INNER JOIN person_tbl p on pl.person_id = p.person_id
INNER JOIN log_tbl l on pl.log_id = l.log_id
GROUP BY p.username, l.log_id
由于
答案 0 :(得分:0)
我认为您需要将这些值汇总在一起并从group by
中移除SELECT p.username, json_agg(l.*)
FROM person_log_tbl pl INNER JOIN
person_tbl p
ON pl.person_id = p.person_id INNER JOIN
log_tbl l
ON pl.log_id = l.log_id
GROUP BY p.username;
:
Basic