我正在使用两个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
如您所见,前两个记录与查询匹配,并且相同的记录是重复的。
答案 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