[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 メーリングリストの案内