首页 > 解决方案 > SQL 子查询列未显示

问题描述

目前我正在尝试从两个单独的表中查询特定列。为此,我选择SELECTFROM子句中使用语句。

这是我正在尝试的以下查询:

SELECT Employees.Last_Name, Employees.First_Name, Employees.PositionID FROM 
Employees,
   (SELECT Positions.PositionID, SUM(Positions.Position_Salary) AS Salary FROM 
   Positions GROUP BY PositionID) AS Subquery
   WHERE Employees.PositionID = Subquery.PositionID

正如我们所看到的,我正在尝试根据每个记录各自PositionID的总和列对每个记录进行分组Salary。不幸的是,该Salary列没有出现。

观察:

在此处输入图像描述

在随后的测试中,我删除了 Employee.First_Name、Employee.Last_Name,但 Salary 的求和列仍然没有出现。

知道这里发生了什么吗?

标签: mysqlsql

解决方案


您需要将该Salary列添加到SELECT子句中:

SELECT Employees.Last_Name, Employees.First_Name, Employees.PositionID,
Subquery.Salary -- added it here
FROM Employees,
(SELECT Positions.PositionID, SUM(Positions.Position_Salary) AS Salary FROM 
 Positions GROUP BY PositionID) AS Subquery
WHERE Employees.PositionID = Subquery.PositionID

推荐阅读