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

以下のように条件をもう 1 つ追加してみてください

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 に答える