使用INNER JOIN时出现模糊错误

时间:2013-02-03 21:18:24

标签: mysql sql oracle oracle11g

我正在尝试从depts表中选择deptno,dname并将其与emp表连接以选择empno和ename。然后我想通过deptno升序按部门名称对它们进行分组   当加入这两个表时,我不断得到'deptno'是模棱两可的。但这是加入表格的共性。任何有用的建议,我的错误可能与

SELECT deptno, dname, empno, ename
FROM dept INNER JOIN emp
ON dept.deptno = emp.deptno
GROUP BY dname
ORDER BY deptno ASC; 

感谢您提供任何有用的建议。

4 个答案:

答案 0 :(得分:5)

歧义来自deptno字段,该字段存在于deptemp表中。为避免使用限定名称或别名。

SELECT D.deptno, dname, empno, ename
FROM dept D
    INNER JOIN emp E
        ON D.deptno = E.deptno
GROUP BY dname
ORDER BY D.deptno ASC; 

答案 1 :(得分:2)

SELECT dept.deptno, dname, empno, ename FROM dept INNER JOIN emp ON dept.deptno = emp.deptno   
GROUP BY dname ORDER BY dept.deptno ASC;

答案 2 :(得分:2)

问题是您在两个表中都有deptno,但您没有在SELECTORDER BY中指定要返回的表:

SELECT dept.deptno, dname, empno, ename
FROM dept 
INNER JOIN emp
  ON dept.deptno = emp.deptno
GROUP BY dname
ORDER BY dept.deptno ASC; 

SELECT emp.deptno, dname, empno, ename
FROM dept 
INNER JOIN emp
  ON dept.deptno = emp.deptno
GROUP BY dname
ORDER BY emp.deptno ASC; 

如果您没有为deptno指定表格,那么您将收到此错误消息。

答案 3 :(得分:1)

试试这个

 SELECT dept.deptno, dname, empno, ename
 FROM dept INNER JOIN emp
 ON dept.deptno = emp.deptno
 GROUP BY dname
 ORDER BY dept.deptno ASC;