zomiaa 2022-01-04 14:38 采纳率: 100%
浏览 950
已结题

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条回答 默认 最新

  • zhang.yao Java领域新星创作者 2022-01-04 15:01
    关注
    # group分组下就好了
    SELECT
    TOP_USER.EMPLOYEE_ID,
    max(TOP_EMPLOYEE.EMPLOYEE_ACCOUNT) EMPLOYEE_ACCOUNT,
    max(TOP_USER.ORG_ID) ORG_ID,
    max(TOP_ORGANIZATION.ORG_NAME) 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
    group by TOP_USER.EMPLOYEE_ID
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月12日
  • 已采纳回答 1月4日
  • 创建了问题 1月4日

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘