SQL查询-从T1中选择值,其中第二个值在T2中完全满足

SQL查询-从T1中选择值,其中第二个值在T2中完全满足,sql,Sql,我可以在一个丑陋的存储过程中使用临时表之类的东西来实现这一点,但我知道一个有经验的开发人员可以比我想到的更优雅地实现这一点。事实上,我不想调用存储过程,只需要一个查询就可以满足我的需要 我正在使用两张桌子: T1计费方向需要 T2计费指令 T1有两个与此任务相关的字段- 普凯 WBS1 每个WBS1将有许多相关的PKEY T2只有一个感兴趣的领域 普凯 我试图解决的任务是从T1获取WBS1列表,在我启用它们的导入之前,这些WBS1在T2中具有所有需要的指令 我们只想在T2中找到WBS

我可以在一个丑陋的存储过程中使用临时表之类的东西来实现这一点,但我知道一个有经验的开发人员可以比我想到的更优雅地实现这一点。事实上,我不想调用存储过程,只需要一个查询就可以满足我的需要

我正在使用两张桌子:

  • T1计费方向需要
  • T2计费指令
T1有两个与此任务相关的字段-

  • 普凯
  • WBS1
每个WBS1将有许多相关的PKEY

T2只有一个感兴趣的领域

  • 普凯
我试图解决的任务是从T1获取WBS1列表,在我启用它们的导入之前,这些WBS1在T2中具有所有需要的指令

我们只想在T2中找到WBS1的所有PKEY时导入该WBS1。如果不是,我就让它们变灰

在过去的几个小时里,我尝试了十几种不同的方法来实现这一点,我似乎有一种精神障碍。伪代码如下所示:

select T1.WBS1 from BillingDirectiveNeeded T1 
where [all the T1.PKeys for T1.WBS1 can be found in BillingDirectives T2]

您可以尝试使用
Where Exists
子句:

Select      T1.WBS1 
From        BillingDirectiveNeeded  T1 
Where Exists
(
    Select  1
    From    BillingDirectives   T2
    Where   T2.PKey = T1.PKey
)

您可以尝试使用
Where Exists
子句:

Select      T1.WBS1 
From        BillingDirectiveNeeded  T1 
Where Exists
(
    Select  1
    From    BillingDirectives   T2
    Where   T2.PKey = T1.PKey
)

您可以尝试使用
Where Exists
子句:

Select      T1.WBS1 
From        BillingDirectiveNeeded  T1 
Where Exists
(
    Select  1
    From    BillingDirectives   T2
    Where   T2.PKey = T1.PKey
)

您可以尝试使用
Where Exists
子句:

Select      T1.WBS1 
From        BillingDirectiveNeeded  T1 
Where Exists
(
    Select  1
    From    BillingDirectives   T2
    Where   T2.PKey = T1.PKey
)

我知道我让事情变得更难了。我对15份工作做了一个小测试,其中有5份不见了,这给了我10份。谢谢Siyual!我知道我让事情变得更难了。我对15份工作做了一个小测试,其中有5份不见了,这给了我10份。谢谢Siyual!我知道我让事情变得更难了。我对15份工作做了一个小测试,其中有5份不见了,这给了我10份。谢谢Siyual!我知道我让事情变得更难了。我对15份工作做了一个小测试,其中有5份不见了,这给了我10份。谢谢Siyual!