gpt4 book ai didi

SQL 查询 : EXISTS in Subtable

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

我有两个表 tabData 和 tabDataDetail。我想要来自 Parent-Table(tabData) 的所有 idData(PK) 在 Child-Table(tabDataDetail, FK is fiData) 中行:

  • fiActionCode=11 单独或
  • fiactionCode=11 和 fiActionCode=34

任何其他组合均无效。如何获得它们?

我尝试过但没有成功(速度慢并且还给我提供了 fiActioncode 34 的行):

alt text
(来源:bilder-hochladen.net)

感谢您的宝贵时间。

<小时/>

编辑:感谢大家的回答。不幸的是,现在我没有足够的时间来检查哪一个最好或根本有效。我将第一个工作标记为答案。

EDIT2:我认为标记的答案确实是最有效和紧凑的解决方案。

EDIT3:Codesleuth 的答案很有趣,因为它只返回只有一个 fiActionCode=11 的行。很难看出,因为只有 41524189 个 tabDataDetail 行中的 20 个 tabDataDetail 行(有两个)才是正确的。不管怎样,这并不是 100% 我所问的,或者更确切地说,我正在寻找的。

最佳答案

Select ...
From tabData As T1
Where Exists (
Select 1
From tabDataDetail As TDD1
Where TDD1.fiData = T1.idData
And TDD1.fiactionCode = 11
)
And Not Exists (
Select 1
From tabDataDetail As TDD1
Where TDD1.fiData = T1.idData
And TDD1.fiactionCode Not In(11,34)
)

为了扩展我的逻辑,第一个检查(更正)是确保存在 fiActionCode = 11 的行。第二次检查的工作方式是首先定义我们不需要的行集。我们不需要 fiActionCode = 11 或 34 以外的任何内容。因为这是我们不想要的项目集,所以我们搜索该集中不存在的任何内容。

关于SQL 查询 : EXISTS in Subtable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3459605/

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