電子書籍の厳選無料作品が豊富!

SELECT文の作成で行き詰ってしまって困っています。
タイトルのニュアンスが適当じゃないのですが、
MasterUserとTableParentの2つのテーブルがあり

MasterUser
|user_no|use_name|
| 0 |山田太郎|
| 1 |山田次朗|

TableParent
|rec_no|father|son|
| 0 | 0 | 1 |

TableParent.rec_no:ユニークな数字
TableParent.father:=MasterUser.user_no
TableParent.son :=MasterUser.user_no

という条件で

|rec_no| father | son |
| 0 |山田太郎|山田次朗|

のような結果を1回で取得するSELECT文は作成可能でしょうか?
自分でやってみた感じ出来ない感じがしました。
正規化を学び始めたばかりなので、テーブルの作成から違う可能性も
ありそうなんですが、何か参考になりそうなサイトがあったら
教えて頂けると嬉しいです。

よろしくおねがいします

A 回答 (2件)

「階層問い合わせ」っぽい話ですね。


SQL Server2005だと「階層問い合わせ」はできるみたいです。
http://msdn.microsoft.com/ja-jp/library/ms175972 …
>J. 複数のアンカー メンバと再帰メンバを使用する

設計的には「階層問い合わせ」を調べてみてください。
fatherがいるならmotherがいると思うので。
「階層問い合わせ」なら家系をさかのぼることも可能ですよ。
    • good
    • 0
この回答へのお礼

現状だと参考に教えて頂いたサイトの様にソース上でやってました。
けど、ストアドプロシージャ使うのは全く頭になかったです。
同じサイト内を見てたんですが、SQLServer内で完結するように
いろいろとやり方があるんですね。
もっと勉強しないとダメですね。
有用なサイトを教えていただきありがとうございました。

お礼日時:2009/08/19 15:03

これでどうですか



selectt1.rec_no
,t2.user_nameasfather
,t3.user_nameasson
fromTableParentt1
left outer join
MasterUsert2
ont2.user_no= t1.father
left outer join
MasterUsert3
ont3.user_no= t1.son
    • good
    • 0
この回答へのお礼

ど真ん中で出来ました。
LeftJoinとか良く分からなかったので逃げてたのが
いけなかったみたいですね。
諦めかけてたのに、一発でできちゃうなんてすごいです。
自分の勉強不足を痛感しました
素早い回答ありがとうございました。

お礼日時:2009/08/19 14:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!