- - PR -
『テーブルAに存在して、テーブルBに存在しない』と言うSQL文
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-02-04 00:42
初めて質問をさせて頂きます。
DBはOracleを使用しています。 SQL文のselectで、 テーブルMの列aにより テーブルAには存在しないで テーブルBには存在するデータをselectする。 という文は、どのように書けば宜しいでしょうか? どなたかご指導お願い致します。 | ||||||||
|
投稿日時: 2008-02-04 01:07
お疲れ様です。
内容から察するに、差集合を行いたいという意味でよいでしょうか? SELECT * FROM B, M WHERE M.A = B.TAISYO MINUS SELECT * FROM A, M WHERE M.A = A.TAISYO もしくは、テーブルBをテーブルMとくっつけて条件に合う物を取った後に、NOTで、テーブルAのコード化何かが有ればそれをはじくようにするという方法もあります。 (NOTを使うと遅くなると思います) テーブルAとテーブルBのどの項目がテーブルMと同じなのかがわからなかったので、 とりあえずTAISYOという名前にしています。 ポイントは、テーブルBで、条件に合う物をすべて出し、その下にテーブルAで条件に当てはまる物を出して、MINUS句を利用し、テーブルAとテーブルBで同じデータを削いだ結果を出すという点です。 これがご希望の考えで間違いないですか? | ||||||||
|
投稿日時: 2008-02-04 01:28
老婆心ながら、お題を出されるときは、列名や行などもなるべく具体例を出されたほうが良いと思います。 私は「テーブルMの列aにより」がどういう構成か良く分かりませんでした。
みたいな感じ?もしかしたら、ちょっと間違っているかもしれませんが、なんにせよ not exists を使うのが自然だろうと思います。 |
1