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

查询同时担任Owner和CEO职位的员工所属公司及人员信息

同时担任CEO和Owner人员的查询方案

方法一:分组统计法

通过筛选目标职位记录,再按公司和人员分组,统计职位数量来确保同时拥有两个职位:

SELECT com.name AS 公司名称, per.name AS 人员姓名
FROM company_person AS cp 
INNER JOIN company AS com ON com.id = cp.company_id
INNER JOIN person AS per ON per.id = cp.person_id
INNER JOIN position AS pos ON pos.id = cp.position_id
WHERE pos.position_name IN ('CEO', 'Owner')
GROUP BY com.name, per.name
HAVING COUNT(DISTINCT pos.position_name) = 2;

逻辑说明:

  • WHERE 子句先过滤出职位为CEO或Owner的记录
  • GROUP BY 按公司名称和人员姓名分组,锁定同一个人在同一家公司的职位集合
  • HAVING COUNT(DISTINCT pos.position_name) = 2 确保该人员在这家公司下同时拥有两个不同的目标职位,DISTINCT 避免同一职位重复记录导致的统计误差

方法二:自连接法

通过自连接company_person表,分别匹配CEO和Owner的职位记录,确保同一人员在同一家公司下同时存在这两个职位:

SELECT com.name AS 公司名称, per.name AS 人员姓名
FROM company_person AS cp_ceo
INNER JOIN company_person AS cp_owner 
    ON cp_ceo.company_id = cp_owner.company_id 
    AND cp_ceo.person_id = cp_owner.person_id
INNER JOIN company AS com ON com.id = cp_ceo.company_id
INNER JOIN person AS per ON per.id = cp_ceo.person_id
INNER JOIN position AS pos_ceo ON pos_ceo.id = cp_ceo.position_id AND pos_ceo.position_name = 'CEO'
INNER JOIN position AS pos_owner ON pos_owner.id = cp_owner.position_id AND pos_owner.position_name = 'Owner';

逻辑说明:

  • 将company_person表分别以cp_ceo和cp_owner别名自连接,关联条件为同一公司、同一人员
  • 分别关联position表,确保cp_ceo对应CEO职位,cp_owner对应Owner职位
  • 最终筛选出同时满足两个职位条件的人员和公司信息

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 23:25:23