You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于T-SQL语法查询互发邮件的关联员工ID对

T-SQL 互发邮件关联员工对查询方案

涉及表结构

主键字段以粗体标注:

  • Employee(员工表):字段包含 id(主键)、name(员工姓名)、emailAddress(邮箱地址)
  • Email(邮件主表):字段包含 emailId(主键)、senderId(发件人员工ID)、receiverId(收件人员工ID)、subject(邮件主题)
  • EmailDetails(邮件详情表):字段包含 emailId(主键)、date(发送时间)、status(邮件状态)

题目规则

  • 关联判定逻辑:若两名员工互相向对方发送过至少1封邮件(即A存在向B发信的记录、同时B也存在向A发信的记录),则判定二人为关联状态
  • 输出要求:返回所有满足关联条件的员工对ID,同一对员工不得重复返回(如(A,B)和(B,A)视为同一对,仅需返回一次)

T-SQL 实现代码

SELECT DISTINCT
    e1.senderId AS EmployeeA_Id,
    e1.receiverId AS EmployeeB_Id
FROM Email e1
INNER JOIN Email e2
    ON e1.senderId = e2.receiverId
    AND e1.receiverId = e2.senderId
-- 过滤同一对员工重复返回、自己给自己发邮件的无效场景
WHERE e1.senderId < e1.receiverId

实现说明

  • 核心逻辑通过Email表自连接完成双向发信记录匹配,不需要关联Employee、EmailDetails表——题目未要求返回员工属性、也未对邮件发送时间/状态做筛选,冗余关联会降低查询效率
  • 条件e1.senderId < e1.receiverId同时实现两个效果:一是避免同一对员工以(ID1,ID2)、(ID2,ID1)的形式重复输出,二是自动过滤员工自己给自己发邮件的无效记录
  • DISTINCT用于去重,避免两名员工之间有多封往来邮件时返回重复的员工对

内容的提问来源于stack exchange,提问作者Juggle_knowledge

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 04:48:16