我有 2 个单独的表,尝试使用 insert ... select 语句插入到嵌套的第三个表(ARRAY 和 STRUCT)中
个别表格: 用户(用户 ID、名字、姓氏)
地址(用户 ID、街道、城市、州)
嵌套表: 成员(用户 ID、名字、姓氏、地址)
每个用户可以有多个地址,key是userid
寻找类似 INSERT INTO MEMBERS(用户 ID、名字、姓氏、地址)的内容 SELECT 用户 ID、名字、姓氏(地址的数组结构)
我希望所有用户都插入到嵌套表中,并且每个用户可以有多个地址。
使用下面的查询
ARRAY_AGG 是分组函数,用于将多个 STRUCT 记录分组为重复结构
INSERT INTO MEMBERS
(userid, firstname, lastname, addresses)
SELECT
u.userid,
u.firstname,
u.lastname,
ARRAY_AGG(STRUCT(m.street, m.city, m.state)) AS addresses
FROM USERS u
LEFT JOIN MEMBERS m
ON (m.userid = u.userid)
GROUP BY
u.userid,
u.firstname,
u.lastname;