sqlserverは、1対の複数の関係をクエリーし、複数のレコードのフィールド値を1つのフィールドにマージします.
4170 ワード
sqlserverは、1対の複数の関係をクエリーし、複数のレコードのフィールド値を1つのフィールドにマージします.
需要シーン
既存の2つのテーブルconstructとattachmentはconstruct.を介してid = attachment.link_idを関連付けます.表construct id
type
state
title
detail
1
不動産
建設中
漢峪金谷1
漢峪金谷1建設詳細
2
不動産
建設中
漢峪金谷2
漢峪金谷2建設詳細
3
不動産
建設中
漢峪金谷3
漢峪金谷3建設詳細
4
不動産
建設中
漢峪金谷4
漢峪金谷4建設詳細
5
不動産
建設中
漢峪金谷5
漢峪金谷5建設詳細
6
不動産
建設中
漢峪金谷6
漢峪金谷6建設詳細
7
不動産
建設中
漢峪金谷7
漢峪金谷7建設詳細
8
不動産
建設中
漢峪金谷8
漢峪金谷8建設詳細
9
不動産
建設中
漢峪金谷9
漢峪金谷9建設詳細
10
不動産
建設中
漢峪金谷10
漢峪金谷10建設詳細
11
不動産
建設中
漢峪金谷11
漢峪金谷11建設詳細
12
不動産
建設中
漢峪金谷12
漢峪金谷12建設詳細
13
不動産
建設中
漢峪金谷13
漢峪金谷13建設詳細
18
不動産
建設中
漢峪金谷14
漢峪金谷14建設詳細
19
としこうつう
計画中
十路緑化改造を経た
十路緑化改造建設の詳細
20
不動産
建設中
漢峪金谷小学校
漢峪金谷小学校の建設詳細
21
不動産
建設中
万達
万達建設の詳細表attachment id
file_type
file_name
file_path
link_id
1
不動産
NULL
UploadFile不動産20190521094020_488565885.png
NULL
2
不動産
NULL
UploadFile不動産20190521094020_488565888.png
NULL
3
不動産
NULL
UploadFile不動産20190521094020_401360686.png
NULL
4
不動産
NULL
UploadFile不動産tmp_e08784ed754d0261517d218d7caee08293fed9c0ebcf53e8.jpg
11
5
不動産
NULL
UploadFile不動産201905210950550 tmp_e08784ed754d0261517d218d7caee08293fed9c0ebcf53e8.jpg
12
6
としこうつう
NULL
UploadFile都市交通20190521140341_52478786.png
19
7
としこうつう
NULL
UploadFile都市交通20190521140341_52478788.png
19
8
としこうつう
NULL
UploadFile都市交通20190521140341_52478786.png
19
9
不動産
NULL
UploadFile不動産20190522094023_813675778.png
20
10
不動産
NULL
UploadFile不動産20190522094023_813675776.png
20
11
不動産
NULL
UploadFile不動産tmp_a0b9403f7cf36457b661ac0f446f61d39bc3d201b35db080.jpg
21
12
不動産
NULL
UploadFile不動産tmp_b1e1ac79eaf26cf78d653c582fa06610d20f9ebbd378798a.jpg
21
各constructに対応する複数のfile_をattachmentテーブルから抽出する必要があるpath値をconstructにマージします.
方法
stuff()、for xml path()でつなぎ合わせ、sql文に直接接続します.
クエリの結果は次のとおりです.
id
type
state
title
detail
files
1
不動産
建設中
漢峪金谷1
漢峪金谷1建設詳細
NULL
2
不動産
建設中
漢峪金谷2
漢峪金谷2建設詳細
NULL
3
不動産
建設中
漢峪金谷3
漢峪金谷3建設詳細
NULL
4
不動産
建設中
漢峪金谷4
漢峪金谷4建設詳細
NULL
5
不動産
建設中
漢峪金谷5
漢峪金谷5建設詳細
NULL
6
不動産
建設中
漢峪金谷6
漢峪金谷6建設詳細
NULL
7
不動産
建設中
漢峪金谷7
漢峪金谷7建設詳細
NULL
8
不動産
建設中
漢峪金谷8
漢峪金谷8建設詳細
NULL
9
不動産
建設中
漢峪金谷9
漢峪金谷9建設詳細
NULL
10
不動産
建設中
漢峪金谷10
漢峪金谷10建設詳細
NULL
11
不動産
建設中
漢峪金谷11
漢峪金谷11建設詳細
UploadFile不動産tmp_e08784ed754d0261517d218d7caee08293fed9c0ebcf53e8.jpg,
12
不動産
建設中
漢峪金谷12
漢峪金谷12建設詳細
UploadFile不動産201905210950550 tmp_e08784ed754d0261517d218d7caee08293fed9c0ebcf53e8.jpg,
13
不動産
建設中
漢峪金谷13
漢峪金谷13建設詳細
NULL
18
不動産
建設中
漢峪金谷14
漢峪金谷14建設詳細
NULL
19
としこうつう
計画中
十路緑化改造を経た
十路緑化改造建設の詳細
UploadFile都市交通20190521140341_52478786.png,UploadFile都市交通20190521140341_52478788.png,UploadFile都市交通20190521140341_52478786.png,
20
不動産
建設中
漢峪金谷小学校
漢峪金谷小学校の建設詳細
UploadFile不動産20190522094023_813675778.png,UploadFile不動産20190522094023_813675776.png,
21
不動産
建設中
万達
万達建設の詳細
UploadFile不動産tmp_a0b9403f7cf36457b661ac0f446f61d39bc3d201b35db080.jpg,UploadFile不動産tmp_b1e1ac79eaf26cf78d653c582fa06610d20f9ebbd378798a.jpg,
もっと多くの文章は私のブログに移動してください:すべて私达のCoderを自称する勇気がありません
需要シーン
既存の2つのテーブルconstructとattachmentはconstruct.を介してid = attachment.link_idを関連付けます.
type
state
title
detail
1
不動産
建設中
漢峪金谷1
漢峪金谷1建設詳細
2
不動産
建設中
漢峪金谷2
漢峪金谷2建設詳細
3
不動産
建設中
漢峪金谷3
漢峪金谷3建設詳細
4
不動産
建設中
漢峪金谷4
漢峪金谷4建設詳細
5
不動産
建設中
漢峪金谷5
漢峪金谷5建設詳細
6
不動産
建設中
漢峪金谷6
漢峪金谷6建設詳細
7
不動産
建設中
漢峪金谷7
漢峪金谷7建設詳細
8
不動産
建設中
漢峪金谷8
漢峪金谷8建設詳細
9
不動産
建設中
漢峪金谷9
漢峪金谷9建設詳細
10
不動産
建設中
漢峪金谷10
漢峪金谷10建設詳細
11
不動産
建設中
漢峪金谷11
漢峪金谷11建設詳細
12
不動産
建設中
漢峪金谷12
漢峪金谷12建設詳細
13
不動産
建設中
漢峪金谷13
漢峪金谷13建設詳細
18
不動産
建設中
漢峪金谷14
漢峪金谷14建設詳細
19
としこうつう
計画中
十路緑化改造を経た
十路緑化改造建設の詳細
20
不動産
建設中
漢峪金谷小学校
漢峪金谷小学校の建設詳細
21
不動産
建設中
万達
万達建設の詳細
file_type
file_name
file_path
link_id
1
不動産
NULL
UploadFile不動産20190521094020_488565885.png
NULL
2
不動産
NULL
UploadFile不動産20190521094020_488565888.png
NULL
3
不動産
NULL
UploadFile不動産20190521094020_401360686.png
NULL
4
不動産
NULL
UploadFile不動産tmp_e08784ed754d0261517d218d7caee08293fed9c0ebcf53e8.jpg
11
5
不動産
NULL
UploadFile不動産201905210950550 tmp_e08784ed754d0261517d218d7caee08293fed9c0ebcf53e8.jpg
12
6
としこうつう
NULL
UploadFile都市交通20190521140341_52478786.png
19
7
としこうつう
NULL
UploadFile都市交通20190521140341_52478788.png
19
8
としこうつう
NULL
UploadFile都市交通20190521140341_52478786.png
19
9
不動産
NULL
UploadFile不動産20190522094023_813675778.png
20
10
不動産
NULL
UploadFile不動産20190522094023_813675776.png
20
11
不動産
NULL
UploadFile不動産tmp_a0b9403f7cf36457b661ac0f446f61d39bc3d201b35db080.jpg
21
12
不動産
NULL
UploadFile不動産tmp_b1e1ac79eaf26cf78d653c582fa06610d20f9ebbd378798a.jpg
21
各constructに対応する複数のfile_をattachmentテーブルから抽出する必要があるpath値をconstructにマージします.
方法
stuff()、for xml path()でつなぎ合わせ、sql文に直接接続します.
select c.*,
STUFF( (select file_path+',' from attachment where link_id=c.id for xml path('')),
1, 0, '' ) files
from construct c
クエリの結果は次のとおりです.
id
type
state
title
detail
files
1
不動産
建設中
漢峪金谷1
漢峪金谷1建設詳細
NULL
2
不動産
建設中
漢峪金谷2
漢峪金谷2建設詳細
NULL
3
不動産
建設中
漢峪金谷3
漢峪金谷3建設詳細
NULL
4
不動産
建設中
漢峪金谷4
漢峪金谷4建設詳細
NULL
5
不動産
建設中
漢峪金谷5
漢峪金谷5建設詳細
NULL
6
不動産
建設中
漢峪金谷6
漢峪金谷6建設詳細
NULL
7
不動産
建設中
漢峪金谷7
漢峪金谷7建設詳細
NULL
8
不動産
建設中
漢峪金谷8
漢峪金谷8建設詳細
NULL
9
不動産
建設中
漢峪金谷9
漢峪金谷9建設詳細
NULL
10
不動産
建設中
漢峪金谷10
漢峪金谷10建設詳細
NULL
11
不動産
建設中
漢峪金谷11
漢峪金谷11建設詳細
UploadFile不動産tmp_e08784ed754d0261517d218d7caee08293fed9c0ebcf53e8.jpg,
12
不動産
建設中
漢峪金谷12
漢峪金谷12建設詳細
UploadFile不動産201905210950550 tmp_e08784ed754d0261517d218d7caee08293fed9c0ebcf53e8.jpg,
13
不動産
建設中
漢峪金谷13
漢峪金谷13建設詳細
NULL
18
不動産
建設中
漢峪金谷14
漢峪金谷14建設詳細
NULL
19
としこうつう
計画中
十路緑化改造を経た
十路緑化改造建設の詳細
UploadFile都市交通20190521140341_52478786.png,UploadFile都市交通20190521140341_52478788.png,UploadFile都市交通20190521140341_52478786.png,
20
不動産
建設中
漢峪金谷小学校
漢峪金谷小学校の建設詳細
UploadFile不動産20190522094023_813675778.png,UploadFile不動産20190522094023_813675776.png,
21
不動産
建設中
万達
万達建設の詳細
UploadFile不動産tmp_a0b9403f7cf36457b661ac0f446f61d39bc3d201b35db080.jpg,UploadFile不動産tmp_b1e1ac79eaf26cf78d653c582fa06610d20f9ebbd378798a.jpg,
もっと多くの文章は私のブログに移動してください:すべて私达のCoderを自称する勇気がありません