0

子テーブルへの2つの外部キー参照を持つ親テーブルがあります。子列を1行に「ピボット」する最適なTSQL(SQL Server 2008)を考え出そうとしています。テーブル構造と必要な結果セット構造は以下のとおりです。これを機能させるための最良の方法は何ですか?

ありがとう。

set nocount on
declare @parent table ( parentid int , parentword varchar(3) , childid int , childotherid int )
insert into @parent values ( 0 , 'a' , 1 , 3 )
insert into @parent values ( 1 , 'b' , 2 , 4 )

declare @child table ( childid int , childword varchar(3) )
insert into @child values ( 1 , 'ppp' )
insert into @child values ( 2 , 'qqq' )
insert into @child values ( 3 , 'rrr' )
insert into @child values ( 4 , 'sss' )


needed result set
a       ppp     rrr
b       qqq     sss
4

2 に答える 2

2

ピボットではありません。子テーブルを親テーブルと2回結合します。左結合を使用したことを参照してください。親テーブルの子ID列のいずれもnullでない場合は、内部結合も使用できます。

select p.parentword,c1.childword,c2.childword from @parent p
left join @child c1
on p.childid = c1.childid
left join @child c2
on p.childotherid = c2.childid
于 2012-07-20T19:48:43.213 に答える
1

select p.parentword
、c.childword、c1.childword as as childotherword from @parent p
inner join @child c on p.childid = c.childid
inner join @child c1 on p.childotherid = c1.childid

于 2012-07-21T00:12:16.813 に答える