わかりましたので、私の問題は一連の結果があることです:
IDコード 1A 1B 3C
次の別の表もあります。
コード あ B ハ
SQL を使用して取得したいのは、テーブル 1 の各結果が欠落しているコードのクエリです。だから基本的に:
IDコード 1C 3A 3B
どんな助けでも素晴らしいでしょう。
使用できますexists
。デカルト結合を使用して可能なバリエーションの完全なリストを作成し、このリストに含まれていないものを確認します。
select id, code
from idcode_table x
where not exists ( select 1
from idcode_table a
cross join code_table b
where b.code = x.code
and a.id = x.id )
これは、 で書き換えることもできますnot in
。
select id, code
from idcode_table
where (id, code) not in ( select distinct a.id, b.code
from idcode_table a
cross join code_table b )
はdistinct
オプションです。可能性のリストを作成するのは遅くなりますが、既にそれらの 1 つがあるかどうかを判断するのは速くなります。どちらが速いかテストしてみます。