質問
2つの結果セットのセットの違いを取得するにはどうすればよいですか?
結果セットがあるとします(それぞれに1つの列のみ):
result1:
'a'
'b'
'c'
result2:
'b'
'c'
結果2:result1 -result2で結果になっているものをマイナスしたいので、
difference of result1 - result2:
'a'
解決
result1 -result2を実行するには、result1でresult1を結合し、結果1に存在する出力アイテムのみを結合できます。例えば:
SELECT DISTINCT result1.column
FROM result1 LEFT JOIN result2 ON result1.column = result2.column
WHERE result2.column IS NULL
それはセットではないことに注意してください 違い, 、および結果1に存在しない結果2にアイテムを出力しません。セットです 減算.
他のヒント
物事が欲しいなら result1
それはありません result2
, 、どうですか:
SELECT distinct result1
FROM t1
WHERE result1 NOT IN (select distinct result2 from t2);
または:
SELECT distinct result
from t1 t
where NOT EXISTS (select 1 from t2 where result2 = t.result1)
注:if result1
のサブセットです result2
その後、上記のクエリは空のセットを返します(彼らはあなたに物事を見せません result2
それはありません result1
)したがって、それらは設定された違いではありませんが、有用かもしれません(おそらく外側の結合よりも効率的です)。
所属していません StackOverflow