谁在同一个部门

问题描述:

工作,用户需要显示从在同一个部门就像Last_name谁在同一个部门

我如何能做到这一点的工作EmployeesLast_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   | 
+0

添加一些示例表数据和预期结果 - 作为格式文本(不是图像)。 – jarlh

+0

尽可能好地尝试 – Jensoo

有一个子查询返回最后一个员工的部门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')