2

depts テーブルから deptno、dname を選択し、emp テーブルと結合して empno と ename を選択しようとしています。次に、部門名の昇順で並べ替え、部門名でグループ化します。
これら 2 つのテーブルを結合すると、「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

問題は、両方のテーブルにあるが、と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と、このエラー メッセージが表示されます。

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