SQL Select查询给出了重复的结果

时间:2016-07-15 23:49:33

标签: sql oracle

我正在使用两个Oracle示例表,Emp和Dept。

我提出了这个问题:

SELECT ENAME,DNAME,LOC FROM EMP INNER JOIN DEPT ON EMP.DEPTNO = 10. 

数字10是Dept表中的dept id。我只想用deptid 10检索记录。查询有效,但它给了我重复的记录。

结果如下:

ENAME        DNAME        LOC        DEPTNO
=========    ==========   ========   ======
JAMES        ACCOUNTING   NEW YORK   10
CLARK KEN    ACCOUNTING   NEW YORK   10
JAMES        RESEARCH     DALLAS     20
CLARK KEN    RESEARCH     DALLAS     20
JAMES        SALES        CHICAGO    30
CLARK KEN    SALES        CHICAGO    30
JAMES        OPERATIONS   BOSTON     40
CLARK KEN    OPERATIONS   BOSTON     40

如您所见,前两个记录与查询匹配,并且相同的记录是重复的。

2 个答案:

答案 0 :(得分:1)

您需要更改on条件,然后添加where条件:

SELECT ENAME,DNAME,LOC 
FROM EMP 
     INNER JOIN DEPT ON EMP.DEPTNO = DEPT.DEPTNO
WHERE DEPT.DEPTNO = 10

答案 1 :(得分:0)

你没有where子句。

SELECT ENAME,DNAME,LOC FROM EMP WHERE DEPTNO = 10