【发布时间】:2020-07-10 09:35:12
【问题描述】:
我有一个用户表,其中存储了employeeId、lastName、firstName、department、hire date 和 mostRecentLogin。
我有另一个存储员工 ID、电子邮件地址的表。
如果员工有多个电子邮件地址,则 emailAddress 表可以有多个行。
我正在尝试返回只为每位员工显示一行的结果。我不在乎哪个电子邮件地址,只要它只选择一个即可。
但我尝试过的所有查询总是返回所有可能的行。
这是我最近的尝试:
select *
from EmployeeInfo i
left join EmployeeEmail e ON i.employeeId = e.employeeId
where i.hireDate = 2015
and employeeId IN (
SELECT MIN(employeeId)
FROM EmployeeInfo
GROUP BY employeeId
)
但话又说回来,这会返回所有可能的行。
有没有办法让它工作?
【问题讨论】:
-
你可以
LEFT JOIN (SELECT TOP 1 email....) x ON x.employeeId = userTable.employeeId
标签: sql sql-server sql-server-2012 sql-server-2014