具有不同列的 INNER JOIN
INNER JOIN with distinct columns
我能够编写一个 select 语句来执行我的查询。但是,我正在寻找显示为仅显示唯一值的 "DepartmentID" 列。
我尝试在不同地方同时使用 "UNIQUE" 和 "DISTINCT",但没有成功。这是示例 table 数据:
输出显示所有 "DepartmentID" 个条目,但我只想显示具有唯一值的条目。
如果 "unique" 值是指只有一名员工的部门,则使用聚合:
SELECT d.departmentid, d.departmentname,
MAX(e.FirstName || ' ' || e.LastName) AS Chair
FROM Employees e JOIN
Departments d
ON e.departmentid = d.departmentid
GROUP BY d.departmentid, d.departmentname
HAVING COUNT(*) = 1
ORDER BY d.departmentid;
编辑:
根据您更新后的问题,您根本不需要聚合。只是正确的 JOIN
条件:
SELECT d.departmentid, d.departmentname,
(e.FirstName || ' ' || e.LastName) AS Chair
FROM Employees e JOIN
Departments d
ON e.employeeid = d.departmentchair
ORDER BY d.departmentid;
我能够编写一个 select 语句来执行我的查询。但是,我正在寻找显示为仅显示唯一值的 "DepartmentID" 列。
我尝试在不同地方同时使用 "UNIQUE" 和 "DISTINCT",但没有成功。这是示例 table 数据:
输出显示所有 "DepartmentID" 个条目,但我只想显示具有唯一值的条目。
如果 "unique" 值是指只有一名员工的部门,则使用聚合:
SELECT d.departmentid, d.departmentname,
MAX(e.FirstName || ' ' || e.LastName) AS Chair
FROM Employees e JOIN
Departments d
ON e.departmentid = d.departmentid
GROUP BY d.departmentid, d.departmentname
HAVING COUNT(*) = 1
ORDER BY d.departmentid;
编辑:
根据您更新后的问题,您根本不需要聚合。只是正确的 JOIN
条件:
SELECT d.departmentid, d.departmentname,
(e.FirstName || ' ' || e.LastName) AS Chair
FROM Employees e JOIN
Departments d
ON e.employeeid = d.departmentchair
ORDER BY d.departmentid;