我想要联合两个子查询的结果(假设为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两次。
有更简洁的方法吗?谢谢。