2013-08-04 58 views
1

假设我们有表:INNER JOIN条件不工作

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

我们如何能找到所有这些谁在同DEPTNO上班SCOTT的员工呢? 我试过如下:

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

,但结果是不正确的。

+0

Parado解决方案的工作?投票upp并将其设置为您的首选答案。 –

回答

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; 
+0

但我的一个朋友邮寄给我的解决方案如下:SELECT e.ename FROM employee e INNER JOIN employee m ON e.deptno = m.deptno AND m.ename ='SCOTT'and e.ename <>'SCOTT';这个'<>'运算符是什么意思? –

+0

@RubbalBhusri所以'scott'不会包含在结果列表中。 –

+0

''>' - 不等于 –