SQL 50 › 索引 › A5 Advanced Select and Joins 高级查询与连接
LC 1789员工的直属部门Primary Department for Each Employee 简单
Employee 表中员工可属多个部门,primary_flag 标记主部门;只出现在一个部门的员工取该部门,其余取 primary_flag='Y' 的部门。
思路 WHERE 主部门为 Y OR 员工仅一条记录(子查询)。
SELECT employee_id, department_id FROM Employee WHERE primary_flag = 'Y' OR employee_id IN ( SELECT employee_id FROM Employee GROUP BY employee_id HAVING COUNT(*) = 1);