我想比较两组列,但从比较中排除一列,因为它永远不会出现在第二个表中,我的结果需要它。所以,解释:
两个表的列:
ID
(独特的价值,所以我不想比较)amount
email
date
我想要实现的目标:从表 1 中获取在amount
、email
和上具有完全相同值的所有事务date
。我也希望ID
在最终结果集中,但如果我使用except
子句进行比较,我的查询将有 0 个结果。
代码:
Select /*ignoreAtComparison*/ t1.ID, t1.amount, t1.email, t1.date from t1
except
Select /*ignoreAtComparison*/ t2.ID, t2.amount, t2.email, t2.date from t2 ;
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
except
可以重写为not exists
查询:
select t1.id, t1.amount, t1.email, t1.date
from t1
where not exists (select 1
from t2
where t2.amount = t1.amount
and t2.email = t1.email
and t2.date = t1.date);
Run Code Online (Sandbox Code Playgroud)
但是你的陈述似乎表明你实际上并不想要,except
而是完全不同的东西。
归档时间: |
|
查看次数: |
2763 次 |
最近记录: |