- 解决分页查询时因sys_company多条记录导致的数据重复问题 - 将LEFT JOIN sys_company改为按tenant_id分组的子查询 - 修改后子查询仅取每个tenant_id的第一条公司记录 - 保证分页查询返回的数据不再重复 - 同步更新了编译后的目标类文件
754 B
754 B
2026-06-29
fix: UserMapper.xml LEFT JOIN sys_company 导致分页查询记录重复
- 问题:
SELECT * FROM sys_user WHERE is_developer = 1只有5条记录,但/api/system/user/page?isDeveloper=true返回多条重复记录 - 原因:
LEFT JOIN sys_company g ON g.tenant_id = t.tenant_id中,一个 tenant_id 可能在 sys_company 中有多条公司记录,产生笛卡尔积 - 修复:将
LEFT JOIN sys_company改为子查询,按tenant_id分组取第一条记录LEFT JOIN ( SELECT tenant_id, MAX(company_name) as company_name, MAX(company_logo) as company_logo FROM sys_company GROUP BY tenant_id ) g ON g.tenant_id = t.tenant_id - 同步修改了
target/classes/下的编译版本