我需要有关如何重新调整SQL Server查询以提高性能的建议。正如你所看到的,我正在重复加入,并希望避免它。这只是我的代码片段,所以我不包括JOIN ON, WHERE
等
任务是将一个人拥有的所有房屋显示为一个连续的字符串,而不是一个人拥有的每个房子的一行。数据库模式以这种方式组织,需要我做多个连接以获取我需要的信息,不幸的是架构不会改变。
select
distinct View1_outer.ID as PersonID
, stuff
(
(select ', ' + Name
from View1 View1_inner
inner join View2 View2_inner
inner join View3 View3_inner
inner join View4 View4_inner
where View1_inner.ID = View1_outer.ID
for XML path('')
)
,1,2,' ') as Houses
from View1 View1_outer
inner join View2 View2_outer
inner join View3 View3_outer
inner join View4 View4_outer
where View1_outer.ID = 'XXX'
答案 0 :(得分:0)
这是重写初始查询的一种方法。我不认为我需要在外部查询中重复连接。
选择
不同的View1_outer.ID作为PersonID
, 东西
(
(选择','+名称
来自View1 View1_inner
内连接View2 View2_inner
内连接View3 View3_inner
内连接View4 View4_inner
其中View1_inner.ID = View1_outer.ID
for XML path('')
)
,1,2,'')作为房屋
其中View1_outer.ID ='XXX'