ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

QNo.3422705 テーブル間の差分抽出方法は? - クエリー文
質問者:unhork Red Hat Enterpraise Linux 3
PostgreSQL7.3.10(Linux)

現在2つのテーブルA,Bにてメールアドレスを管理していますが
その2つのテーブルの差分を知りたいのですが、
(Aを基準と考えBとの差分:つまりAには存在しないデータ抽出)

プログラム(PHP等)を使用せずに
差分を取得するには、どの様なクエリー文を組むと出来るのでしょうか?

よろしくお願いします。
困り度:
  • すぐに回答を!
質問投稿日時:
07/10/12 13:19
この質問に対する回答は締め切られました。

回答良回答20pt

ANo.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
回答者:chukenkenkou
種類:アドバイス
どんな人:専門家
自信:参考意見
回答日時:
07/10/12 16:32
この回答へのお礼この回答にお礼をつける(質問者のみ)