- - PR -
【SQL】データ抽出について
1
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-11-03 16:51
悩んでいることがありまして載せました。
Table1 カラム CD value 'A', 'B', 'C' Table2 カラム CD value 'A', 'B' Table1, 2からvalue 'C' だけを持つTable3をcreateしたいのですが出来ません。 もし分かる方がいたらご教授下さい。 よろしくお願いします。 | ||||||||
|
投稿日時: 2006-11-03 17:21
SELECT の結果を、そのまま INSERT。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-11-03 17:46
じゃんぬねっとさんの回答に屋上屋を架すの感がありますが。
CREATE TABLE 〜 AS SELECT 〜 構文を調べてみると、ちょっと幸せになれるかもしれません。 # DBMS に何を使っているか書いていないけれど、Oracle と PostgreSQL ならこれで良いはず。 ## また「ご教授」。 ## ら抜き言葉のように広まってゆくのでしょうか。 [ メッセージ編集済み 編集者: Gio 編集日時 2006-11-03 17:47 ] | ||||||||
|
投稿日時: 2006-11-04 00:26
すみません。言葉がまったく足りなかったので追記します。
Table1からTable2には無いCDを抽出したTable3を作成するための SQLが分からずに投稿しました。 今回の例ではValue'C'だけですが、'D'等がTable1に追加されたら 'C', 'D'を含むTable3を作成したいのです。 ちなみにDBはOracleです。 以下のwhere部分の条件を設定すれば実現できる気がするのですが 分からないのです。 知恵を貸して下さい。 create table Table3 as select CD from ( select T1.CD from Table1 T1, Table2 T2 where ・・・・・・ ) [ メッセージ編集済み 編集者: yui 編集日時 2006-11-04 00:27 ] | ||||||||
|
投稿日時: 2006-11-04 15:01
えーと、「Table1にあって、Table2にないと言う抽出条件の書き方が分らない」ってことで良いですか?
そうであれば、NOT IN もしくはNOT EXISTSを使います。 <NOT INの例> from Table1 where CD NOT IN (Select CD FROM Table2) あとこれが良く分らないのですが、
Table1にデータが追加されたら、テーブル作り直すんですか? Viewにしておけない理由でもあるのですか? 説教臭いことはなるべく書きたくないのですが、
"ちなみに"じゃなくて、使用されているDBMSはバージョンも含めて必ず書いて下さい。 | ||||||||
|
投稿日時: 2006-11-07 08:05
差集合
| ||||||||
1
