- 数据仓库中的
post
数据表和file
数据表有关系:file
表的post_id
字段对应post
表的id
字段。 file
表记录文件内容,当前有多个文件数据关联id
为3的内容。- 使用SQL查询从
post
表获取内容列表,并联合file
表添加文件信息。 - 用
LEFT JOIN
合并file
表,并设置条件file.post_id = post.id
。 - 查询会显示内容和关联文件,由于内容可能对应多个文件,查询结果可能包含重复内容项。
GROUP BY post_id
用于解决重复,但因文件数据有多值会导致错误。- 为解决多值问题,使用
JSON_AGG
将文件id
组成数组,作为files
栏目返回。 - 查询结果中
files
是一个数组,无文件对应有null
,有文件则显示其id
数组。 - 例如,
id
等于三的内容有四个相关文件,文件id
分别为1, 2, 3, 4。