プロが教えるわが家の防犯対策術!

テーブル1
No , ID1 , ID2
1 , 2 , 3
2 , 1 , 4
3 , 3 , 3

テーブル2
ID , data
1 , da1
2 , da2
3 , da3
4 , da4

結果
No , data1 , data2
1 , da2 , da3
2 , da1 , da4
3 , da3 , da3

上記結果を取得するSQL文の書き方がわかりません。
どなたか分かる方教えて下さい。

A 回答 (2件)

select T1.No, T2ID1.data, T2ID2.data


from テーブル1 as T1
inner join テーブル2 as T2ID1 on T1.ID1 = T2ID1.ID
inner join テーブル2 as T2ID2 on T1.ID2 = T2ID2.ID
    • good
    • 0
この回答へのお礼

返信遅くなりました
ありがとうございます。参考にさせていただきます。

お礼日時:2017/07/18 09:23

SQL ServerのCONCAT系の関数はよくわかりませんが


もしGROUP_CONCAT的な関数があるなら、JOINするのは1度でもいけます

create table tbl_1(No int unique,ID1 int,ID2 int);
insert into tbl_1 values(1,2,3),(2,1,4),(3,3,3);

create table tbl_2(ID int unique,data varchar(10));
insert into tbl_2 values(1,'da1'),(2,'da2'),(3,'da3'),(4,'da4');

select No
,group_concat(case when ID=ID1 then data end) as data1
,group_concat(case when ID=ID2 then data end) as data2
from tbl_1
left join tbl_2 on ID in (ID1,ID2)
group by No;
    • good
    • 0
この回答へのお礼

返信遅くなりました
ありがとうございます。参考にさせていただきます。

お礼日時:2017/07/18 09:24

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