[pgsql-jp: 34013] Re: テーブルの結合について
中嶋
o-nakashima @ hi-lex.co.jp
2004年 9月 21日 (火) 09:47:10 JST
坂田@横須賀の丘の上 様
回答有難うございます。
希望どおりの表を作成することが出来ました。
しかし作成した表からデータを取り出す(where句
を使う)場合はどこに記述すればよいのでしょうか?
以上
----- Original Message -----
From: "SAKATA Testuo" <sakata.tetsuo @ lab.ntt.co.jp>
To: <pgsql-jp @ ml.postgresql.jp>
Sent: Tuesday, September 21, 2004 9:15 AM
Subject: [pgsql-jp: 34012] Re: テーブルの結合について
> おはようございます。坂田@横須賀の丘の上です。
>
> 中嶋 wrote:
>
> >はじめて問合せをしますナカシマです。
> >初心者なので初心者なりの回答お願いします。
> >
> >環境は以下の構成で使用しています。
> >RedHatLinux7.3
> >Postgresql 7.2.3
> >
> >問題は
> >以下のテーブル1、テーブル2が以下のようにあります。
> >
> >table1とtable2はほぼ同じ内容なのですが、
> >
> >2つのテーブルを共通する部分だけ単純にid,結合し、
> >select分でidを1〜6まで
> >以下のselect文を書いてもうまく結合できません。
> >どのようにすればよいのでしょうか?
> >
> >
>
> お望みのものは、結合(join)ではなくて、マージではないかと思います。
>
> >だめだった例)
> >select id, name, date, month
> > from table1,table2
> >where id='3'
> >
> >(table 1)
> >id name year date month
> >(text) (text) (text) (text) (text)
> >1 A 2004 07 01
> >2 B 2004 09 02
> >3 C 2004 07 07
> >
> >(table 2)
> >id name year date month second
> >(text) (text) (text) (text) (text) (text)
> >4 D 2004 07 05 12
> >5 A 2004 07 07 34
> >6 B 2004 07 14 33
> >
> >(結合したい形)
> >(table3)
> >id name year date month
> >(text) (text) (text) (text) (text)
> >1 A 2004 07 01
> >2 B 2004 09 02
> >3 C 2004 07 07
> >4 D 2004 07 05
> >5 A 2004 07 07
> >6 B 2004 07 14
> >
> >以上情報が不足している場合は直ぐに回答いたしますので宜しくお願い致しま
す。
> >
> >
> >
> この形の出力が得たいのであれば、
>
> (1)マージしようとする双方のテーブルの型(列のセット)をそろえて、
> (2)テーブルをマージする
>
> ことになります。
>
> (SELECT id, name, year, date, month
> FROM table2
> )
> UNION
> (SELECT id, name, year, date, month
> FROM table3
> );
>
> でできるかと思います。
> ( )で括った箇所が上記の(1)、
> キーワードUNIONが(2)に対応します。
>
> idに重複がある場合、などはもう少し処理を追加する必要がありますが…。
>
> ご参考になれば幸いです。
>
> --
> 坂田 哲夫@NTT サイバースペース研究所
> sakata.tetsuo _at_ lab.ntt.co.jp
> SAKATA, Tetsuo. Yokosuka JAPAN.
>
>
>
pgsql-jp メーリングリストの案内