Zom*_*ies 39 mysql set-difference
如何获得两个结果集的设置差异?
假设我有一个结果集(每个只有一列):
result1:
'a'
'b'
'c'
result2:
'b'
'c'
Run Code Online (Sandbox Code Playgroud)
我想减去result2中result1的结果:result1 - result2使得它等于:
difference of result1 - result2:
'a'
Run Code Online (Sandbox Code Playgroud)
rjh*_*rjh 59
要执行result1 - result2,可以将result1与result2连接,并仅输出result1中存在的项.例如:
SELECT DISTINCT result1.column
FROM result1 LEFT JOIN result2 ON result1.column = result2.column
WHERE result2.column IS NULL
Run Code Online (Sandbox Code Playgroud)
请注意,这不是设置差异,并且不会输出result2中不存在的result2中的项目.这是减法.
另见:http://www.bitbybit.dk/carsten/blog/?p = 71
小智 14
如果你想要的东西result1不在result2,那么:
SELECT distinct result1
FROM t1
WHERE result1 NOT IN (select distinct result2 from t2);
Run Code Online (Sandbox Code Playgroud)
要么:
SELECT distinct result
from t1 t
where NOT EXISTS (select 1 from t2 where result2 = t.result1)
Run Code Online (Sandbox Code Playgroud)
注意:如果result1是一个子集,result2那么上面的查询将返回一个空集(他们不会告诉你的事情在result2未在result1),所以他们不差集,但可能是太有用(也许这是比外部更有效加入).
| 归档时间: |
|
| 查看次数: |
56320 次 |
| 最近记录: |