人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

SQLでLEFT JOINキーワードがあります。これって大雑把に言うと、SELECT文では条件に一致するものと、左の表しかないものと2通り抽出します。
今欲しい条件文は、条件に合わずに左の表しかないもの「だけ」を抽出したいのですが、どうしたらできるでしょうか??
明日仕事で使うので、分かる方助けてください!良い回答には100P!!
サイトの紹介でも、簡単なSQL文で構成を示してもらっても構いません。

●質問者: keronimo
●カテゴリ:コンピュータ
✍キーワード:いもの キーワード サイト 抽出 LEC
○ 状態 :終了
└ 回答数 : 3/4件

▽最新の回答へ

1 ● kn1967
●27ポイント

連結されるほうのテーブルの中のフィールドが『Nullならば選択しない』というような書き方になります。

SELECT T1.*

FROM T1 LEFT JOIN T2 ON T1.a = T2.a

WHERE T2.a Is Null;

◎質問者からの返答

おおっ シンプルで分かりやすいです。

それほど知識がありませんが、これでいけると思います。早速使わせていただきます!


2 ● b-wind
●27ポイント

http://www.postgresql.jp/document/pg821doc/html/functions-subque...

そういう場合は JOIN では無く、NOT EXISTS か NOT IN を使います。

◎質問者からの返答

説明文が難しいですね。

上記の方のように例文を示していただけるとありがたいのですが・・


3 ● huruyosi
●26ポイント

SELECT T1.*

FROM T1 LEFT JOIN T2 ON T1.a = T2.a

WHERE T2.a Is Null;

を例にして T1にだけにあり、T2には無い

Existsで書くなら

SELECT T1.*

FROM T1

WHERE NOT EXISTS(

SELECT *

FROM T2

WHERE T1.a = T2.a AND T2.a IS NOT NULL

)


NOT IN で書くなら

SELECT T1.*

FROM T1

WHERE I1.a not in ( SELECT T2.a FROM T2 WHERE T2.a is not null)

◎質問者からの返答

1の方の回答が一番シンプルに見えますが、なぜ一般的ではないのか?この回答も求めます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ