首先 - 为模糊的标题道歉,我找不到更好的。
我有以下结构的表(简化):
EmpID DeptID
1 1
1 2
2 1
3 2
4 5
5 2
此表表示多对多关系。
我有兴趣查找与特定 DeptID 组相关的所有 EmpID,例如,我想要与 DeptID 1、2 和 3 相关的所有 EmpID。请注意,它是 AND 关系而不是 OR 关系。就我而言, EmpID 可能与除 1、2 和 3 之外的其他 DeptID 有关,因为它是一个有效的答案。
我感兴趣的 DeptID 数量的变化(即我可能想要与 DeptID 3 和 5 相关的 EmpID,或者我可能想要与 DepID 2、3、4、5、6、7 相关的 EmpID)。
当我尝试解决这个问题时,我发现自己要么为每个 DepID 创建一个 JOIN,要么为每个 DeptID 创建一个子查询。这意味着我必须根据我正在测试的 DeptID 数量生成一个新查询。我显然更喜欢使用一个参数或一组参数进行静态查询。
我正在使用 SQL Server 和 MySQL(并行开发我的代码的两个版本)。
有任何想法吗?