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

質問

質問者:lvupgogo SELECT 文で
困り度:
  • すぐに回答を!
覚え始めで、どうにも上手くいかず困っております。

テーブル「個人ファイル」「個人ファイル2」

それぞれに「個人NO」の項目があります


「個人ファイル1」に存在し「個人ファイル2」に
存在しない「個人NO」の一覧を取得するには
どうしたらよいのでしょうか?

SQLSERVER でEXCEPTが使えなくて・・
どなたかお願いです。教えてください。
質問投稿日時:08/04/10 23:19
質問番号:3938926

回答

 

回答者:chukenkenkou SQL Serverも、バージョンによってSQL実装の状況が違いますから、明記するようにしてください。

差分検索ですぐに思いつくのは、以下のようなSQLです。

-- 例1 not existsを使う
select *
from 個人ファイル as pf1
where not exists
(select 1 from 個人ファイル2 as pf2
where pf1.個人NO=pf2.個人NO)


-- 例2 not inを使う
select *
from 個人ファイル
where 個人NO not in(select 個人NO from 個人ファイル2)


-- 例3 outer joinを使い、対応するキーがなかった行を検索
select pf1.*
from 個人ファイル as pf1
left join 個人ファイル2 as pf2
on pf1.個人NO=pf2.個人NO
where pf2.個人NO is null
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:08/04/11 02:10
回答番号:No.1
この回答への補足この回答に補足をつける(質問者のみ)
この回答へのお礼この回答にお礼をつける(質問者のみ)