1

假设我们有表:

EMPNO   ENAME   DEPTNO
------  ------  ----------
7369    SMITH   20
7499    ALLEN   30
7654    MARTIN  30
7788    SCOTT   20
7839    KING    10
7900    JAMES   30

我们如何才能找到与 SCOTT 在同一部门工作的所有员工?我尝试如下:

SELECT e.ename FROM employee e INNER JOIN employee m ON e.deptno=m.deptno;

,但结果不正确。

4

1 回答 1

0

尝试添加一个如下条件

SELECT e.ename 
FROM employee e 
INNER JOIN employee m ON e.deptno=m.deptno
                      AND m.ENAME = 'SCOTT'
WHERE m.ENAME <> 'SCOTT'; -- exclude scott

您也可以尝试使用子查询

SELECT e.ename 
FROM employee e
WHERE EXISTS
(
   SELECT 1
   FROM employee M
   WHERE  M.ENAME = 'SCOTT'
   and E.deptno=M.deptno        
)
AND  m.ENAME <> 'SCOTT'; -- exclude scott; 
于 2013-08-04T20:33:10.163 回答