如何用SQL从employee、project表查询多项目员工对应字段值
问题描述
需要编写SQL语句从employee、project两张数据表中,筛选出被分配了1个以上项目的员工,查询结果需返回以下字段:
- Employee ID
- employee first name
- project name
提问后续更新:本人已经自行解决这个问题了,谢谢大家之前的关注和思路提供,也为最开始问题表述不够清楚给大家带来的困扰致歉。
参考实现SQL
假设project表中通过employee_id字段和employee表做关联(实际使用时替换成你表中真实的外键、字段名即可),可参考如下写法:
SELECT e.employee_id AS "Employee ID", e.first_name AS "employee first name", p.project_name AS "project name" FROM employee e INNER JOIN project p ON e.employee_id = p.employee_id WHERE e.employee_id IN ( SELECT employee_id FROM project GROUP BY employee_id HAVING COUNT(DISTINCT project_id) > 1 );
提示:子查询里用COUNT(DISTINCT project_id)是为了避免同一个项目存在多条重复记录时统计不准,可根据实际数据情况调整。
内容的提问来源于stack exchange,提问作者Mongkolwong Sonwong
相关产品推荐
相关产品推荐

