小编Tho*_*lik的帖子

如果没有 B 则查询 A

我有一个包含列ID, TYPE, DATE, ... 的表,我需要所有数据集TYPE <> 'A'(案例 1),TYPE = A如果没有TYPE = B相同的数据集ID(案例 2)。第一种情况很容易,所以我想UNION用来结合第一种和第二种情况。但我不知道如何选择第二种情况。我正在尝试自我连接,例如:

SELECT *
FROM MY_TABLE TAB1
JOIN MY_TABLE TAB2
ON
  TAB1.ID = TAB2.ID
  AND TAB1.TYPE = 'A'
  AND TAB2.TYPE = 'B'
Run Code Online (Sandbox Code Playgroud)

这样我就得到了我不想要的集合。我想我需要一个子查询,但我不知道我应该朝哪个方向工作。

也许是这样的:

SELECT *
FROM MY_TABLE TAB1
WHERE TAB1.TYPE <>'A'
UNION
SELECT *
FROM MY_TABLE TAB1
NOT IN
(SELECT *
FROM MY_TABLE TAB1
JOIN MY_TABLE TAB2
ON
  TAB1.ID = TAB2.ID
  AND TAB1.TYPE = …
Run Code Online (Sandbox Code Playgroud)

db2 subquery

3
推荐指数
1
解决办法
284
查看次数

标签 统计

db2 ×1

subquery ×1