sqlserver查詢一對多的關(guān)系、合并多條記錄的某字段值到一個(gè)字段
需求場景
現(xiàn)有如下兩個(gè)表格construct和attachment祭椰,通過construct.id = attachment.link_id進(jìn)行關(guān)聯(lián)。
- 表 construct
id | type | state | title | detail |
---|---|---|---|---|
1 | 房地產(chǎn) | 正在建設(shè) | 漢峪金谷1 | 漢峪金谷1建設(shè)詳情 |
2 | 房地產(chǎn) | 正在建設(shè) | 漢峪金谷2 | 漢峪金谷2建設(shè)詳情 |
3 | 房地產(chǎn) | 正在建設(shè) | 漢峪金谷3 | 漢峪金谷3建設(shè)詳情 |
4 | 房地產(chǎn) | 正在建設(shè) | 漢峪金谷4 | 漢峪金谷4建設(shè)詳情 |
5 | 房地產(chǎn) | 正在建設(shè) | 漢峪金谷5 | 漢峪金谷5建設(shè)詳情 |
6 | 房地產(chǎn) | 正在建設(shè) | 漢峪金谷6 | 漢峪金谷6建設(shè)詳情 |
7 | 房地產(chǎn) | 正在建設(shè) | 漢峪金谷7 | 漢峪金谷7建設(shè)詳情 |
8 | 房地產(chǎn) | 正在建設(shè) | 漢峪金谷8 | 漢峪金谷8建設(shè)詳情 |
9 | 房地產(chǎn) | 正在建設(shè) | 漢峪金谷9 | 漢峪金谷9建設(shè)詳情 |
10 | 房地產(chǎn) | 正在建設(shè) | 漢峪金谷10 | 漢峪金谷10建設(shè)詳情 |
11 | 房地產(chǎn) | 正在建設(shè) | 漢峪金谷11 | 漢峪金谷11建設(shè)詳情 |
12 | 房地產(chǎn) | 正在建設(shè) | 漢峪金谷12 | 漢峪金谷12建設(shè)詳情 |
13 | 房地產(chǎn) | 正在建設(shè) | 漢峪金谷13 | 漢峪金谷13建設(shè)詳情 |
18 | 房地產(chǎn) | 正在建設(shè) | 漢峪金谷14 | 漢峪金谷14建設(shè)詳情 |
19 | 城市交通 | 規(guī)劃中 | 經(jīng)十路綠化改造 | 經(jīng)十路綠化改造建設(shè)詳情 |
20 | 房地產(chǎn) | 正在建設(shè) | 漢峪金谷小學(xué) | 漢峪金谷小學(xué)建設(shè)詳情 |
21 | 房地產(chǎn) | 正在建設(shè) | 萬達(dá) | 萬達(dá)建設(shè)詳情 |
- 表attachment
id | file_type | file_name | file_path | link_id |
---|---|---|---|---|
1 | 房地產(chǎn) | NULL | UploadFile\房地產(chǎn)\20190521094020_488565885.png | NULL |
2 | 房地產(chǎn) | NULL | UploadFile\房地產(chǎn)\20190521094020_488565888.png | NULL |
3 | 房地產(chǎn) | NULL | UploadFile\房地產(chǎn)\20190521094020_401360686.png | NULL |
4 | 房地產(chǎn) | NULL | UploadFile\房地產(chǎn)\tmp_e08784ed754d0261517d218d7caee08293fed9c0ebcf53e8.jpg | 11 |
5 | 房地產(chǎn) | NULL | UploadFile\房地產(chǎn)\20190521095050tmp_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 | 房地產(chǎn) | NULL | UploadFile\房地產(chǎn)\20190522094023_813675778.png | 20 |
10 | 房地產(chǎn) | NULL | UploadFile\房地產(chǎn)\20190522094023_813675776.png | 20 |
11 | 房地產(chǎn) | NULL | UploadFile\房地產(chǎn)\tmp_a0b9403f7cf36457b661ac0f446f61d39bc3d201b35db080.jpg | 21 |
12 | 房地產(chǎn) | NULL | UploadFile\房地產(chǎn)\tmp_b1e1ac79eaf26cf78d653c582fa06610d20f9ebbd378798a.jpg | 21 |
現(xiàn)需要從attachment表提取每一個(gè)construct對應(yīng)的多個(gè)file_path值船庇,并與construct合并。
方法
通過stuff()侣监、 for xml path() 進(jìn)行拼接鸭轮,直接上sql語句:
select c.*,
STUFF( (select file_path+',' from attachment where link_id=c.id for xml path('')),
1, 0, '' ) files
from construct c
查詢結(jié)果為:
id | type | state | title | detail | files |
---|---|---|---|---|---|
1 | 房地產(chǎn) | 正在建設(shè) | 漢峪金谷1 | 漢峪金谷1建設(shè)詳情 | NULL |
2 | 房地產(chǎn) | 正在建設(shè) | 漢峪金谷2 | 漢峪金谷2建設(shè)詳情 | NULL |
3 | 房地產(chǎn) | 正在建設(shè) | 漢峪金谷3 | 漢峪金谷3建設(shè)詳情 | NULL |
4 | 房地產(chǎn) | 正在建設(shè) | 漢峪金谷4 | 漢峪金谷4建設(shè)詳情 | NULL |
5 | 房地產(chǎn) | 正在建設(shè) | 漢峪金谷5 | 漢峪金谷5建設(shè)詳情 | NULL |
6 | 房地產(chǎn) | 正在建設(shè) | 漢峪金谷6 | 漢峪金谷6建設(shè)詳情 | NULL |
7 | 房地產(chǎn) | 正在建設(shè) | 漢峪金谷7 | 漢峪金谷7建設(shè)詳情 | NULL |
8 | 房地產(chǎn) | 正在建設(shè) | 漢峪金谷8 | 漢峪金谷8建設(shè)詳情 | NULL |
9 | 房地產(chǎn) | 正在建設(shè) | 漢峪金谷9 | 漢峪金谷9建設(shè)詳情 | NULL |
10 | 房地產(chǎn) | 正在建設(shè) | 漢峪金谷10 | 漢峪金谷10建設(shè)詳情 | NULL |
11 | 房地產(chǎn) | 正在建設(shè) | 漢峪金谷11 | 漢峪金谷11建設(shè)詳情 | UploadFile\房地產(chǎn)\tmp_e08784ed754d0261517d218d7caee08293fed9c0ebcf53e8.jpg, |
12 | 房地產(chǎn) | 正在建設(shè) | 漢峪金谷12 | 漢峪金谷12建設(shè)詳情 | UploadFile\房地產(chǎn)\20190521095050tmp_e08784ed754d0261517d218d7caee08293fed9c0ebcf53e8.jpg, |
13 | 房地產(chǎn) | 正在建設(shè) | 漢峪金谷13 | 漢峪金谷13建設(shè)詳情 | NULL |
18 | 房地產(chǎn) | 正在建設(shè) | 漢峪金谷14 | 漢峪金谷14建設(shè)詳情 | NULL |
19 | 城市交通 | 規(guī)劃中 | 經(jīng)十路綠化改造 | 經(jīng)十路綠化改造建設(shè)詳情 | UploadFile\城市交通\20190521140341_52478786.png,UploadFile\城市交通\20190521140341_52478788.png,UploadFile\城市交通\20190521140341_52478786.png, |
20 | 房地產(chǎn) | 正在建設(shè) | 漢峪金谷小學(xué) | 漢峪金谷小學(xué)建設(shè)詳情 | UploadFile\房地產(chǎn)\20190522094023_813675778.png,UploadFile\房地產(chǎn)\20190522094023_813675776.png, |
21 | 房地產(chǎn) | 正在建設(shè) | 萬達(dá) | 萬達(dá)建設(shè)詳情 | UploadFile\房地產(chǎn)\tmp_a0b9403f7cf36457b661ac0f446f61d39bc3d201b35db080.jpg,UploadFile\房地產(chǎn)\tmp_b1e1ac79eaf26cf78d653c582fa06610d20f9ebbd378798a.jpg, |
更多文章請移步我的博客:
都不敢自稱碼農(nóng)的Coder