我使用的是 LEFT JOIN,在某些情况下,不存在右表匹配,因此空(null)值被替换为右表列。因此,我得到了 [null]
作为 JSON 聚合之一。
SELECT C.id, C.name, json_agg(E) AS emails FROM contacts C
LEFT JOIN emails E ON C.id = E.user_id
GROUP BY C.id;
例如,Postgres 9.3创建输出
id | name | emails
-----------------------------------------------------------
1 | Ryan | [{"id":3,"user_id":1,"email":"hello@world.com"},{"id":4,"user_id":1,"email":"again@awesome.com"}]
2 | Nick | [null]
当右表列为 null 时,我如何忽略/删除 null
以便拥有一个空的 JSON 数组 []
?