情景:在查询用户列表的时候,同时要查询出用户的部门,而且每个用户可以拥有多个部门,在使用left join on 进行夺表查询的时候,就会出现多部门用户数据重复的问题。
原sql:
select u.*
from user u
left join user_and_department_rel d
on d.user_id = u.id
order by u.create_time desc
解决办法:
使用GROUP BY 聚合函数对结果集进行分组
解决后的sql:
select u.*
from user u
left join user_and_department_rel d
on d.user_id = u.id
group by u.id
order by u.create_time desc