📅  最后修改于: 2023-12-03 15:20:17.223000             🧑  作者: Mango
在企业中,经理是管理整个团队的人。有时候,我们需要查找同时也是经理的所有员工。这可以通过SQL查询来实现。
下面是查询以查找同时也是经理的所有员工的SQL查询语句:
SELECT * FROM employees
WHERE employee_id IN
(SELECT manager_id FROM employees)
该查询使用了内嵌的子查询。每个员工都有一个经理。经理的ID存储在该员工的manager_id列中。在子查询中,我们选择manager_id列中的所有唯一值。然后,在主查询中,我们选择employee_id列的所有值,这些值在子查询的结果中找到。因此,该查询返回所有同时也是经理的员工。
假设我们有以下员工表格:
| employee_id | first_name | last_name | email | phone_number | hire_date | job_id | salary | commission_pct | manager_id | | ----------- | ---------- | ---------| --------------------| ------------ | ---------- | --------- | ------ | --------------| ---------- | | 100 | Steven | King | steven.king@sql.com | 515.123.4567 | 1987-06-17 | AD_PRES | 24000 | NULL | NULL | | 101 | Neena | Kochhar | neena.kochhar@sql.com| 515.123.4568 | 1989-09-21 | AD_VP | 17000 | NULL | 100 | | 102 | Lex | De Haan | lex.dehaan@sql.com | 515.123.4569 | 1993-01-13 | AD_VP | 17000 | NULL | 100 | | 103 | Alexander | Hunold | alexander.hunold@sql.com| 590.423.4567 | 1990-01-03 | IT_PROG | 9000 | NULL | 102 | | 104 | Bruce | Ernst | bruce.ernst@sql.com | 590.423.4568 | 1991-05-21 | IT_PROG | 6000 | NULL | 103 | | 105 | David | Austin | david.austin@sql.com | 590.423.4569 | 1997-06-25 | IT_PROG | 4800 | NULL | 103 |
如果我们运行上述SQL查询语句,则将返回以下结果:
| employee_id | first_name | last_name | email | phone_number | hire_date | job_id | salary | commission_pct | manager_id | | ----------- | ---------- | ---------| --------------------| ------------ | ---------- | --------- | ------ | --------------| ---------- | | 101 | Neena | Kochhar | neena.kochhar@sql.com| 515.123.4568 | 1989-09-21 | AD_VP | 17000 | NULL | 100 | | 102 | Lex | De Haan | lex.dehaan@sql.com | 515.123.4569 | 1993-01-13 | AD_VP | 17000 | NULL | 100 |
以上SQL查询可用于查找同时也是经理的所有员工。该查询使用了内嵌的子查询,通过比较两个列的值来确定结果。