【问题标题】:How to write Query with Multiple joins and having clause?如何编写具有多个连接和具有子句的查询?
【发布时间】:2017-06-05 17:20:35
【问题描述】:

如果 EST_ID 存在,则获取 EST_ID = 10 且 VALUE= 0 且 EST_ID = 11 且 VALUE = 1 的所有 B_NAME。

在下面的示例中,输出应为 B1、B2。 B4 不应选择,因为其中包含 EST_ID=12。

ID  B_ID     B_NAME           EST_ID               VALUE
1      1          B1              10                0
2      1          B1              11                1
3      2          B2              10                0
4      3          B3              10                1
5      3          B3              11                0
6      4          B4              10                0
7      4          B4              11                1
8      4          B4              12                1

【问题讨论】:

  • Stack 不是编码站点。我们帮助那些陷入困境的人。这个问题没有显示出任何研究努力,或任何试图自己解决问题的尝试。此外,如果今年过去的 3 个问题中的任何一个对您有所帮助,您应该接受答案。如果不是,请解释为什么那些协助的人可以尝试不同的解决方案。关于这个问题的提示使用 where 或 a 计数 = 2。示例:stackoverflow.com/questions/35887975/…
  • @xQbert 尝试使用未给出预期结果的子句和“或”条件

标签: group-by left-join inner-join where-clause having-clause


【解决方案1】:

我不知道是什么查询导致您出现这种情况,但您应该尝试在查询末尾添加以下内容:

GROUP BY B_ID HAVING ((EST_ID=10 AND VALUE =0) || (EST_ID=11 AND VALUE =1)) AND B_ID <> 4

【讨论】:

  • 这将返回甚至 B_ID = 4 即 B4,这是我不想要的
  • 我更改了查询,现在检查
猜你喜欢
  • 2018-09-10
  • 2021-01-16
  • 2020-04-05
  • 1970-01-01
  • 1970-01-01
  • 2012-05-12
  • 1970-01-01
  • 2021-01-05
  • 1970-01-01
相关资源
最近更新 更多