【问题标题】:Subquery with rows havingthe same value具有相同值的行的子查询
【发布时间】:2021-03-08 15:25:26
【问题描述】:

我的 Tsql 语句有问题。 我有两张桌子

物品表:

Id  name qty
1    a    1
2    b    5
3    c    7

扩展表:

Id   itemid   active
1      1        true
2      1        true
3      1        false
4      2        true
5      2        true
6      3        false
7      3        true

当扩展表中的所有相关行都为真时,我希望查询选择项目表中的所有行

这里的结果应该是

One row
2 b 7

谁能帮帮我? 谢谢

【问题讨论】:

  • “谁能帮帮我?”我确定可以,但是“Can someone help me?” isn't an actual question.。 *你试图解决什么问题?你做了哪些研究来尝试实现这一目标?为什么这些尝试没有奏效,或者您对上述研究有什么不了解?
  • 如果Extend table 中不存在任何行,这是否也算作no false found
  • 你的预期结果是错误的,你想要2 b 5而不是2 b 7
  • 你预期结果中的7来自哪里?

标签: sql sql-server tsql


【解决方案1】:

您可以使用NOT EXISTS

SELECT i.*
FROM Itemtable i
WHERE NOT EXISTS(
    SELECT 1 FROM Extendtable e
    WHERE i.id = e.itemid AND e.active = 'false'
)

【讨论】:

  • 这还会显示Itemtable 中在Extend 表中没有行的所有行。不确定OP是否想要,他没有说。所以最好提一下
  • @GuidoG:是的,但是 OP 没有提到这是可能的或者是错误的(如果可能的话)。一旦我们知道必须修复它就很容易修复:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-09
  • 1970-01-01
  • 2016-05-21
  • 2021-01-12
  • 2018-02-18
  • 2023-01-06
相关资源
最近更新 更多