![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
SQLの結合条件について
・table_A
ID | ATAI
01 | AAA
01 | XXX
02 | ABC
03 | DEF
table_B
ID | ATAI
01 | 不要
02 | 必要
03 | 必要
04 | 不要
上記のようなテーブルAとBがあるとします。
やりたいこと
1.テーブルAに存在するIDをBのIDから抽出
2.テーブルAの「ATAI」の値が’AAA’のIDは抽出対象から外す。
※テーブルAの01IDに’AAA’と’XXX’がありますが、Bの抽出対象から外したい。
2.がうまくいきません。
select B.ID from table_A A,table_B B
where A.ID = B.ID
上記のSQLに2.の条件を足して、結果を02と03にしたいです。
※CASEは使わずにお願いします。
No.5
- 回答日時:
「'AAA'が登場するIDは、他の条件を付けることなく除外したい」で良いんですね?
(なぜ'XXX'が登場したんだろう?)
ならばATAIに'AAA'が登場するIDのリストを作り、NOTで否定すればよい。
where条件に以下の一行を追加。
and A.ID not in (select ID from table_A where ATAI='AAA')
この回答への補足
and A.ID not in (select ID from table_A where ATAI='AAA')
だと、01は抽出されてしまうんです。
ATAI='AAAはnot inではじけますが、'XXX'ははじけないので。
説明下手ですが、
上記の条件では質問内容にある、2テーブルを作成し実行すると、ID01も抽出されてしまいます。
No.4
- 回答日時:
Where条件を編集する工夫はご自身でできませんか?
whereに追加の場合は
and A.ATAI not in ('AAA', 'XXX')
でも
and not(A.ATAI = 'AAA' or A.ATAI = 'XXX')
でも良いし
INNER JOINの場合は
where A.ATAI not in ('AAA', 'XXX')
でも
where not(A.ATAI = 'AAA' or A.ATAI = 'XXX')
でも良いし
この回答への補足
説明不足だったかもしれませんが、
条件としては、テーブルAのATAI「AAA」のIDを抽出対象外にしたいのです。
それでは、XXXの値も抽出対象外になってしまいます。
値がXXXでも、AAAの値のIDと同じでなければ抽出対象なのです。
上記ができなくて困っています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CLOB型へのINSERT
-
Oracle複数の表をもとにmerge文...
-
oracle sqlで先頭の1件を取得
-
count(1)とcount(*)の違い
-
テーブル名を[]でくくらないと...
-
truncate文で全テーブルを一気...
-
Viewにインデックスは張れ...
-
DELETE文でFROM句を省略した場合
-
INDEXの無効化
-
データを削除しても表領域の使...
-
ACCESS 複数テーブル・複数フィ...
-
select insert 句
-
INSERT時に発番を行いたい
-
SQL*Loaderで、データを加工し...
-
Access レコードを追加できませ...
-
ストアドで別スキーマのテーブ...
-
同じSELECT文同士でのデ...
-
他の処理でselectさせないよう...
-
特定のスキーマのテーブルを一...
-
viewのバックアップ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CLOB型へのINSERT
-
truncate文で全テーブルを一気...
-
テーブル名を[]でくくらないと...
-
count(1)とcount(*)の違い
-
oracleのプライマリ・キー名の変更
-
Oracle複数の表をもとにmerge文...
-
1つのテーブル・2つの列を結合...
-
fix a table に「表を作る」の...
-
oracle sqlで先頭の1件を取得
-
グループの数を取得したい
-
Oracle上のテーブルからCREATE ...
-
複数テーブルのUPDATE
-
Oracle テーブルの列削除
-
DBに新しいTBLを作成した際の初...
-
主キーが二つのテーブルのselec...
-
SQL*Loaderをダイレクトモード...
-
"actuarial table"とは?
-
あるデータベースの表を全部消...
-
alter table でチェックボック...
-
DBで第1正規形と第2正規形の...
おすすめ情報