谁在同一个部门
问题描述:
工作,用户需要显示从在同一个部门就像Last_name
谁在同一个部门
我如何能做到这一点的工作Employees
的Last_names
?
SELECT LAST_NAME, DEPARTMENT_ID
FROM EMPLOYEES
WHERE DEPARTMENT_ID = DEPARTMENTID(&LAST_NAME)
这就是我的尝试。也许它适用于连接,但我从字面上不知道... 任何人都可以帮忙吗?
我的表:
- Empoyees(EMP_ID,LAST_NAME,DEPARTMENT_ID)
- 部门(DEPARTMENT_ID,位置)
应该看起来像(为例姓 “王”)
| LAST_NAME | DEPARTMENT_ID |
| Mueller | 20 |
| Bach | 20 |
答
有一个子查询返回最后一个员工的部门ID(s)名称。通过IN
获得来自同一部门的其他员工。
SELECT LAST_NAME, DEPARTMENT_ID
FROM EMPLOYEES
WHERE DEPARTMENT_ID IN (select DEPARTMENT_ID
FROM EMPLOYEES
WHERE LAST_NAME = &LAST_NAME)
根据其DBMS您使用,一个JOIN
版本可能会有更好的表现:
SELECT e1.LAST_NAME, e1.DEPARTMENT_ID
FROM EMPLOYEES e1
JOIN (select DEPARTMENT_ID
FROM EMPLOYEES
WHERE LAST_NAME = &LAST_NAME) e2
ON e1.DEPARTMENT_ID = e2.DEPARTMENT_ID
答
我加了2个单引号('
),现在它的工作。
SELECT LAST_NAME, DEPARTMENT_ID
FROM EMPLOYEES
WHERE DEPARTMENT_ID IN (select DEPARTMENT_ID
FROM EMPLOYEES
WHERE LAST_NAME = '&LAST_NAME')
添加一些示例表数据和预期结果 - 作为格式文本(不是图像)。 – jarlh
尽可能好地尝试 – Jensoo