質問 |
||
| 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 |
|
| |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |