2

わかりましたので、私の問題は一連の結果があることです:

IDコード
1A
1B
3C

次の別の表もあります。

コード
あ
B
ハ

SQL を使用して取得したいのは、テーブル 1 の各結果が欠落しているコードのクエリです。だから基本的に:

IDコード
1C
3A
3B

どんな助けでも素晴らしいでしょう。

4

2 に答える 2

0

使用できます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 つがあるかどうかを判断するのは速くなります。どちらが速いかテストしてみます。

于 2012-08-05T16:48:49.380 に答える