gpt4 book ai didi

sql - 获取与条件连接上所有相应记录匹配的记录

转载 作者:行者123 更新时间:2023-12-02 15:26:08 26 4
gpt4 key购买 nike

我有一个业务问题,我将其表述为以下示例以便于交流。假设我有三个表 EmployeeProjectEmpWorkProjEmpWorkProj 用于链接员工和他们从事的项目(或链接 EmployeeProject 之间的表)。这是表数据的示例:表:员工

EmployeeID  EmpName
1 Alex
2 Pete
3 Mike

表:项目

ProjectID   ProjectCity
11 NY
22 LA
33 NY
44 LA

表:EmpWorkProj

EmployeeID  ProjectID
1 11
1 33
1 22
2 11
3 33
3 44

我要返回的是在城市 'NY' 从事所有项目的员工。在此示例中,我想返回 Alex,因为他是唯一从事项目 ID 1133 的员工。我非常感谢使用标准 sql 的解决方案(无法部署递归 CTE、动态 sql 或游标)。谢谢。

最佳答案

您可以使用group byhaving 来解决这个问题。对于每个员工,计算他们在纽约作为城市的项目数量。然后,在 having 子句中,查看是否是所有项目:

select ewp.employeeid
from EmpWorkProj ewp join
Project p
on ewp.projectid = p.projectid
where p.projectcity = 'NY'
group by ewp.employeeid
having count(*) = (select count(*) from project where projectcity = 'NY')

关于sql - 获取与条件连接上所有相应记录匹配的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30311051/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com