Mysql 获取SQL查询中定义不明确的列时出错

Mysql 获取SQL查询中定义不明确的列时出错,mysql,sql,Mysql,Sql,我试图从emp表中打印员工的最高工资 通过按我从DEPT表中引用的部门名称对它们进行分组 由于EMP表中没有定义部门名称,所以我只想打印部门名称,而不是EMP表中定义的部门编号(DEPTNO)。 我是DBMS新手命令帮助我解决这个问题您不应该得到一个不明确的列,而是一个未定义的列错误 如果您想按部门编号订购,则应将其包括在分组中: SELECT MAX(EMP.SAL),DEPT.DNAME FROM EMP JOIN DEPT ON EMP.DEPTNO=DEPT.DEPTNO GROUP B

我试图从emp表中打印员工的最高工资 通过按我从DEPT表中引用的部门名称对它们进行分组 由于EMP表中没有定义部门名称,所以我只想打印部门名称,而不是EMP表中定义的部门编号(DEPTNO)。
我是DBMS新手命令帮助我解决这个问题

您不应该得到一个不明确的列,而是一个未定义的列错误

如果您想按部门编号订购,则应将其包括在
分组中:

SELECT MAX(EMP.SAL),DEPT.DNAME
FROM EMP
JOIN DEPT
ON EMP.DEPTNO=DEPT.DEPTNO
GROUP BY DEPT.DNAME
ORDER BY DEPTNO ASC;
这应该是相同的结果——假设两个不同的部门没有相同的名称

您还可以使用聚合函数:

SELECT MAX(EMP.SAL), DEPT.DNAME
FROM EMP JOIN
     DEPT
     ON EMP.DEPTNO = DEPT.DEPTNO
GROUP BY DEPT.DNAME, DEPT.DEPTNO
ORDER BY DEPTNO ASC;

排序依据应仅使用聚合后可用的表达式和列。

您不应得到不明确的列,而应得到未定义的列错误

如果您想按部门编号订购,则应将其包括在
分组中:

SELECT MAX(EMP.SAL),DEPT.DNAME
FROM EMP
JOIN DEPT
ON EMP.DEPTNO=DEPT.DEPTNO
GROUP BY DEPT.DNAME
ORDER BY DEPTNO ASC;
这应该是相同的结果——假设两个不同的部门没有相同的名称

您还可以使用聚合函数:

SELECT MAX(EMP.SAL), DEPT.DNAME
FROM EMP JOIN
     DEPT
     ON EMP.DEPTNO = DEPT.DEPTNO
GROUP BY DEPT.DNAME, DEPT.DEPTNO
ORDER BY DEPTNO ASC;
排序依据应仅使用聚合后可用的表达式和列