如何使用 json1 将数据内部连接和解析为 JSON

How to inner join and parse data as JSON using json1

例如,假设我有一个名为 Movie 的 table,有 2 列 - [id,title]

数据

1, killbill
2, endgame

和另一个 table 作为 Cast 有 2 列 - [id,name]

数据:

1, Uma
1, David
2, Robert

Cast table有演员并且id与电影相同

我想要的 SELECT 查询的输出类似于:

1, killbill, [uma,David]
2, endgame,[Robert]

我尝试了什么:

select m.*,json_array(c.name) from movie m inner join cast c on c.id = m.id  

但是 returns:

1   killbill    [David]
1   killbill    [Uma]
2   endgame     [Robert]

请建议正确的数据分组方法。我也试过 group by,但是 returns 数据少了。

如果我使用json_group_array,我只会得到一部所有演员的电影

1   killbill    ["David","Uma","Robert"]

您必须 group by 电影并使用聚合函数 json_group_array() 而不是 json_array():

select m.id, m.title, json_group_array(c.name) names
from movie m inner join cast c 
on c.id = m.id 
group by m.id, m.title

参见demo
结果:

| id  | title    | names           |
| --- | -------- | --------------- |
| 1   | killbill | ["David","Uma"] |
| 2   | endgame  | ["Robert"]      |