我有这3个表表1:
id_Table1 field_table1_1 field_table1_2
1 A B
2 C D
3 E F
表格1:
id_Table2 field_table2_1 field_table2_2
4 G H
5 I J
项目清单
表3:
id_Table3 id_Table1 id_Table2
1 1 4
2 1 5
3 2 5
因此,表3保留了表1和2之间的关系。
我想做的是查询,获取表1中的所有字段,再加上一个额外的字段,其中包含用逗号分隔的表2的所有ID。
所以结果应该是这样的:
id_Table1 field_table1_1 field_table1_2 id_Table2
1 A B 4, 5
2 C D 5
3 E F
一种选择是使用横向连接和string_agg()
:
select t1.*, x.*
from table1 t1
outer apply (
select string_agg(t3.id_table2) id_table2
from table3 t3
where t3.id_table1 = t1.id_table1
) x
无需带来table2
所需的结果。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句