2013-08-04 107 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

''>' - 不等於 –