- PR -

SQL(Ora9i) 複数行の値を同じ行で取得するには?

1
投稿者投稿内容
insolence
会議室デビュー日: 2007/08/31
投稿数: 2
投稿日時: 2007-08-31 17:02
はじめまして。
ずっとROMで御世話になっていましたが、今回はじめて投稿致します。

以下のテーブルがあります。
CREATE TABLE T1
(
SYAINID VARCHAR2(2) NOT NULL,
NAME VARCHAR2(36) NOT NULL
CONSTRAINT T1_PK PRIMARY KEY (SYAINID) USING INDEX
)
/
CREATE TABLE T2
(
SYAINID VARCHAR2(2) NOT NULL,
SYOZOKU VARCHAR2(36) NOT NULL
CONSTRAINT T2_PK PRIMARY KEY (SYAINID, SYOZOKU) USING INDEX
)
/

[ T1 ]
SYAINID | NAME
--------+-----------
01     NANASHI GONBE

[ T2 ]
SYAINID | SYOZOKU
--------+-----------
01     野球
01     サッカー
01     茶道


このデータを以下のように取得するには、どのようにすればよいのでしょうか?

[ 取得結果 ]
SYAINID | SYOZOKU1 | SYOZOKU2 | SYOZOKU3 | … | SYOZOKU30 |
--------+----------+----------+----------+----+-----------+
01     野球     サッカー     茶道

T2のSYAINID毎のレコード数は可変ですが0件〜最大30件です。
複数行を同一行で返すには、どのように記述すればよいのでしょうか?
ご教示の程、よろしくお願い致します
しろくま
常連さん
会議室デビュー日: 2004/10/15
投稿数: 35
投稿日時: 2007-08-31 18:08
しろくまです。

先日、私が質問したのと同じですね。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=40788&forum=26&6

insolence
会議室デビュー日: 2007/08/31
投稿数: 2
投稿日時: 2007-08-31 21:06
しろくま様、レスありがとうございます。

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=40788&forum=26&6
より
引用:

> unibon様 述
リレーショナルDB(RDB) を使う以上、SQL で得られる結果セットも RDB の枠組みに沿ったものであるべきだと考えます。



やはり、あまり良くない手段なのですね。
データ結果量が多いので、コーディングでどうにかしたいと思います。

ご教示ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)