| | |
| | | <select id="selectGdDataObjectionPage" resultMap="gdDataObjectionResultMap"> |
| | | select |
| | | obj.id, |
| | | /* 建议显式列出 obj 的其他必要字段,或者确保 id 是主键 */ |
| | | obj.title, |
| | | obj.objection_status, |
| | | obj.create_dept, |
| | | obj.apply_target_dept_id, |
| | | obj.create_time, |
| | | /* 必须显式查询排序字段,否则某些情况下分页插件生成的 COUNT 会报错 */ |
| | | obj.update_time, |
| | | obj.is_deleted, |
| | | /* 修改点1:修正 string_agg 语法,去掉 SEPARATOR */ |
| | | string_agg(da.attach_name::text, ',') as attach_names, |
| | | bd.dept_name as create_dept_name |
| | | from |
| | | ja_gd_data_objection obj |
| | | left join |
| | | ja_gd_data_objection_attachment da |
| | | /* 修改点2:双向转型对齐 */ |
| | | on obj.id::text = da.objection_id::text |
| | | and da.is_deleted = 0 |
| | | left join |
| | | blade_dept bd on bd.id::text = obj.create_dept::text |
| | | <where> |
| | | obj.is_deleted = 0 |
| | | /* 修改点3:da.is_deleted 已移至 ON 条件,此处删除以保证 LEFT JOIN 有效 */ |
| | | <if test="param2.title != null and param2.title != ''"> |
| | | and obj.title::text like concat('%',#{param2.title},'%') |
| | | </if> |
| | |
| | | ) |
| | | </if> |
| | | </where> |
| | | /* 修改点4:GROUP BY 必须包含 SELECT 中所有非聚合字段 */ |
| | | group by |
| | | obj.id, obj.title, obj.objection_status, obj.create_dept, |
| | | obj.apply_target_dept_id, obj.create_time, obj.is_deleted, bd.dept_name |
| | | obj.apply_target_dept_id, obj.create_time, |
| | | /* 只要 SELECT 里出现的非聚合字段,GROUP BY 必须加上 */ |
| | | obj.update_time, |
| | | obj.is_deleted, bd.dept_name |
| | | </select> |
| | | |
| | | |