首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何根据已过滤的表筛选表

如何根据已过滤的表筛选表
EN

Stack Overflow用户
提问于 2018-05-26 11:32:54
回答 1查看 42关注 0票数 0

我有一个包含体育代码列表的代码表。我还有另一张桌子,里面有一份可以包含多个体育代码的工作人员名单。

我只想返回其体育代码可以覆盖在代码表中的工作人员。

如下所示:

在本例中,Jason拥有代码表中的所有代码,而Jackson只有一个代码短缺(codeID 3),因此只有Jason返回。

代码语言:javascript
运行
复制
Declare @code table
              (
                  codeID varchar(4),
                  codeDes varchar(72)
                  Primary Key(codeID, codeDes)
              )

Insert into @code
Values ('1', 'apple picking'), ('2', 'pear picking'), ('3', 'farming')

Declare @staff table
               (
                   staffID int,
                   name varchar(8),
                   codeID varchar(4)
               )

Insert into @staff
Values (1, 'Jason', '1'), (1, 'Jason', '2'), 
       (1, 'Jason', '3'), (1, 'Jason', '4'), 
       (2, 'Jackson', '1'), (2, 'Jackson', '2')
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-26 11:43:32

您可以尝试下面的示例假设员工拥有唯一的代码。

代码语言:javascript
运行
复制
SELECT staffId, Name
FROM @staff  s
INNER JOIN @code c ON c.codeID = s.codeID
GROUP BY StaffId, Name
HAVING COUNT(DISTINCT s.CodeId) = (SELECT COUNT(1) FROM @code)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50542299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档