2

我正在尝试从 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

4 回答 4

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; 
于 2013-02-03T21:26:42.543 回答
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;
于 2013-02-03T21:19:27.040 回答
2

问题是您在两个表中都有,但您没有指定在anddeptno中返回哪个表: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,那么您将收到此错误消息。

于 2013-02-03T21:26:42.493 回答
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; 
于 2013-02-03T21:27:43.847 回答