Q&A

回答の並べ替え:
投稿新規に質問を投稿する

テーブル間の差分データの抽出方法

shinkai shinkai

2020-09-17 11:48

先日よりお世話になっております。同じテーブル定義の「既存情報」と「最新情報」というテーブルがあり、両テーブルには「識別番号」というカラムが含まれています。

両テーブル間から識別番号をキーにして最新情報のテーブルにのみに存在するレコードを抽出するには、SQLをどのように書けばよいでしょうか? 

公式ページの解説([FAQ000141]2つのテーブルを比較し、一致しないデータを検索するには? https://cloud.celf.jp/celf-help/ja/texts/faq/technical/faq000141.html)を拝見し、SQL拡張オプションは入れました。
しかし当方SQLを理解できていないため、見よう見まねで、公式ページのコードをもとに書いてみたものの、「サンプルA」以降のコードをどのように書いたらよいかわからなくなってしまった次第です。
当方SQLに触るのが初めてなので、ここで質問させていただくのもおこがましいのですが、ご教示いただけますと助かります。

shinkai shinkai
ありがとうございます!できました!
何から何まで、ありがとうござました。
m(_ _)m
Yexiongmao Yexiongmao
メダルベストアンサー
こんにちは。

SELECT のあとに、表示したいフィールド(カラム)をカンマで区切って書きます。
すべてのカラムを表示したい場合は、「*」アスタリスク一つで良いです。
WHERE以降は変わりません。
shinkai shinkai
ありがとうございます!できました!
例示では「識別番号」をキーにして、差分となる「名称」を抽出していただきましたが、
「名称」のほかに「単価」や「数量」といった複数項目があり、これらの差分データも抽出したい場合は、SQLをどのように書けばよいのでしょうか・・・・?
Yexiongmao Yexiongmao
こんにちは。

ヘルプの「NOT EXISTS」を使ったサブクエリを参照されていますので、サンプルを作ってみました。(「NOT IN」を使う方法もあります。)
「既存情報」にはすべての県コードは登録されておらず、「最新情報」にはほぼすべての県コードが登録されています。
テーブル名は、最新情報「A」、既存情報「B」とエイリアス名を指定しています。