zomiaa
2022-01-04 14:38
采纳率: 100%
浏览 324

sql语句多表连接查询,根据其中两个字段相同的去重

表 【TOP_USER】、表【TOP_EMPLOYEE】、表【TOP_ORGANIZATION】三表关联
【TOP_USER】这是人员ID和组织ID的对应关系表
id EMPLOYEE_ID ORG_ID remark
1 2123 77 ABCDEF
2 2123 82 ABCFF
3 2125 84 ABCEE
4 2129 99 ABCGG
……
【TOP_EMPLOYEE】这是人员ID和人员账号的对应关系表
id EMPLOYEE_ID EMPLOYEE_ACCOUNT remark
1 2123 zhangsan@123.csg.cn 张三
2 2125 zhangliu@123.csg.cn 张六
3 2129 zhangjiu@123.csg.cn 张九
……
【TOP_ORGANIZATION】这是组织ID和组织名称的对应关系表
id ORG_CODE ORG_ID ORG_NAME
1 06031315 77 组织企划
2 06031316 82 销售部门
3 06031317 84 后勤管理
4 06031318 99 管理部门
……

其中表 【TOP_USER】存在 EMPLOYEE_ID(人员ID字段)对应了多个ORG_ID(组织ID)
例如:2123这个人员ID对应了77和82两个组织ID
做三表关联,希望达到只显示一行2123这个人员ID的数据,根据EMPLOYEE_ID字段去重
一个人员ID对应多个组织ID的时候,只显示一条数据,根据人员ID去重。其他字段数据不重要
这是我写的sql,查出来会有EMPLOYEE_ID重复的数据,如何才能改成EMPLOYEE_ID无重复。

SELECT DISTINCT
TOP_USER.EMPLOYEE_ID,
TOP_EMPLOYEE.EMPLOYEE_ACCOUNT,
TOP_USER.ORG_ID,
TOP_ORGANIZATION.ORG_NAME
FROM
TOP_USER
LEFT JOIN TOP_EMPLOYEE ON TOP_USER.EMPLOYEE_ID = TOP_EMPLOYEE.EMPLOYEE_ID
LEFT JOIN TOP_ORGANIZATION ON TOP_USER.ORG_ID = TOP_ORGANIZATION.ORG_ID

2条回答 默认 最新

相关推荐 更多相似问题