[FAQ000141]2つのテーブルを比較し、一致しないデータを検索するには?

Q

2つのテーブルを比較し、片方のテーブルにしか存在しないデータを取得する方法は
ありますか?

例えば、テーブルAには存在するが、テーブルBには存在ないデータを取得したいです。

A

拡張オプションのCELF SQLアクション(※)を用いて、
NOT EXISTS句を用いたSQLを実行することで、
一方にしか存在しないデータを取得する方法があります。

■SQL例
SELECT
[カラムA]
FROM
[テーブルA]
WHERE
NOT EXISTS (
SELECT
[カラムB]
FROM
[テーブルB]
WHERE
[サンプルA].[カラムA] = [サンプルB].[カラムB]
)


■実行結果
[テーブルA]の[カラムA]に存在し、
[テーブルB]の[カラムB]に存在しないレコードが抽出されます。


(※)CELF SQLアクションの詳細については下記をご参照ください
CELF SQLアクション