INNER JOIN条件不起作用

时间:2013-08-04 20:30:44

标签: sql inner-join aggregate-functions

假设我们有表格:

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;

,但结果不正确。

1 个答案:

答案 0 :(得分: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;