gpt4 book ai didi

SQL结合Union和Except

转载 作者:行者123 更新时间:2023-12-04 18:33:04 24 4
gpt4 key购买 nike

我想合并两个子查询的结果(比如 SUB1 和 SUB2)。子查询有多个列,包括一个 ID 列。

如果 SUB1 中存在 ID=1,我希望联合结果仅包含来自 SUB1 的 ID=1 行,而不包含来自 SUB2 的 ID=1 行。

例如。如果 SUB1 具有以下列和行

ID | Date
1 | 7/1
2 | 7/3

而 SUB2 有以下内容:

ID | Date
1 | 7/4
3 | 7/8

我希望联合结果是

ID | Date
1 | 7/1
2 | 7/3
3 | 7/8

我能想到的唯一方法就是做类似的事情

SELECT * FROM (SUB1)

UNION

SELECT * FROM (SUB2)
WHERE ID NOT IN
(SELECT ID FROM (SUB1) )

我唯一担心的是 SUB1 和 SUB2 是长查询。我想避免在查询中两次粘贴 SUB1。

有没有更简洁的方法?谢谢

最佳答案

SELECT  COALESCE(sub1.id, sub2.id), COALESCE(sub1.date, sub2.date)
FROM sub1
FULL OUTER JOIN
sub2
ON sub1.id = sub2.id

关于SQL结合Union和Except,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1098989/

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