• ベストアンサー

テーブル間の差分抽出方法は? - クエリー文

Red Hat Enterpraise Linux 3 PostgreSQL7.3.10(Linux) 現在2つのテーブルA,Bにてメールアドレスを管理していますが その2つのテーブルの差分を知りたいのですが、 (Aを基準と考えBとの差分:つまりAには存在しないデータ抽出) プログラム(PHP等)を使用せずに 差分を取得するには、どの様なクエリー文を組むと出来るのでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

>その2つのテーブルの差分を知りたいのですが、 >(Aを基準と考えBとの差分:つまりAには存在しないデータ抽出) Aを基準なら、普通は「Aにあり、Bにない」だと思いますが? 紛らわしいので、「t1にあり、t2にはない」として、SQL例を示します。 -- 例1 not existsを使う select c1 from t1 where not exists(select * from t2 where t1.c1=c1) -- 例2 not inを使う select c1 from t1 where c1 not in(select c1 from t2) -- 例3 left joinを使う select t1.c1 from t1 left join t2 on t1.c1=t2.c1 where t2.c1 is null