Sql 查询是否可以改进?:从链接表中,创建一个字段的组
我有一个名为Sql 查询是否可以改进?:从链接表中,创建一个字段的组,sql,sql-server,tsql,Sql,Sql Server,Tsql,我有一个名为club\u per\u clubgroup、entitiesclub、clubgroup和customer的链接表 每个俱乐部组的俱乐部: (club) (clubgroup) fooclub 1 barclub 2 fooclub 3 barclub 3 (code) (clubgroup) foolio 1 barman 2 wiseman 3 customer表链接到clubgroup: (club) (clubgroup) fo
club\u per\u clubgroup
、entitiesclub
、clubgroup
和customer
的链接表
每个俱乐部组的俱乐部
:
(club) (clubgroup)
fooclub 1
barclub 2
fooclub 3
barclub 3
(code) (clubgroup)
foolio 1
barman 2
wiseman 3
customer
表链接到clubgroup
:
(club) (clubgroup)
fooclub 1
barclub 2
fooclub 3
barclub 3
(code) (clubgroup)
foolio 1
barman 2
wiseman 3
我需要在一个领域为客户提供所有俱乐部。
这是我已经做过的,而且它是有效的:
select * from
(select distinct customer from club_customer)c
cross apply(select
STUFF( (
select ',' + cc.club
from club_customer cc
where c.customer=cc.customer
order by cc.club
FOR XML PATH(''), TYPE
).value('.','nvarchar(max)')
,1,2, '') as clubgroup
) as conctbl
有没有其他更高性能的替代方案来获得相同的性能
SQL SERVER版本为2008(可能是R2)。备选方案将取决于SQL SERVER的版本。始终指定,最好使用标记(
sql-server-20xx
可以很容易地替换这里的jointable
)。我在问题的末尾回答了你的帖子有很多细节。您是否询问有关DB设计或重新设计尝试的任何问题?或者您的问题只是关于最终select语句“优化”的?请删除所有多余的信息后。设计已决定;正如您所说,问题只涉及最终的选择优化。我看不出哪个部分是不需要的:我已经粘贴了前后表的示例,以及我当前的查询。我看不出我能排除什么会使问题不那么可读。好的,我会进行编辑,不要把它视为伤害企图。你可以随时回到原来的岗位。