[pgsql-jp: 32597] Re: 似たフィールドに同じ参照テーブルを使いたい
gotou
gotou @ hokkou.co.jp
2004年 3月 27日 (土) 13:13:02 JST
初めまして、ごとうと申します。
>
> はじめまして。初心者の関本といいます。
>
> PostgreSQL 7.2.3にて以下のことしたく困っております。
> メンバーテーブルと、県名テーブルを作り・・・
>
> create table member (
> id integer primary key, --ID
> name text, --名前
> ken_now integer, --現住所(県名)
> ken_old integer --旧住所(県名)
> );
> create table ken (
> ken_no integer primary key, --県ナンバー
> kenmei text --県名
> );
>
> insert into member values ('1','愛生','2','1');
> insert into member values ('2','江尾','1','3');
>
> insert into ken values ('1','青森');
> insert into ken values ('2','東京');
> insert into ken values ('3','大阪');
>
> とした場合、愛生さんのレコードを1行の
> 『 1|愛生|東京|青森 』
> のように取り出したい selectコマンドをお教え戴けないでしょうか?
>
SELECT id, name,
(SELECT ken_mei FROM ken WHERE ken_no=member.ken_now)as ken_now,
(SELECT ken_mei FROM ken WHERE ken_no=member.ken_old)as ken_old
FROM member WHERE id=1;
こんな感じでしょうか。動作は確認していないので確かではありませんが。
もっと効率の良い方法がありそうですが、今はこれが精一杯...
pgsql-jp メーリングリストの案内