我有一个主表中的外键与多个表。该表是这样的:如何高效地连接多个表中的多行
姐妹
MainID IDNO ....
111111 1 ....
111111 1 ....
111111 1 ....
222222 1 ....
111111 2 ....
兄弟
MainID IDNO ....
111111 555 ....
111111 333 ....
111111 111 ....
222222 222 ....
111111 321 ....
叔叔
MainID IDNO ....
111111 561 ....
111111 121 ....
111111 331 ....
222222 451 ....
111111 672 ....
我需要Concat的enate所有IDNo
在公司,但我似乎无法得到所有作为例子也许我不能让672
SELECT
',' + S1.IDNo + ',' + B1.IDNo + ',' + U1.IDNo AS [text()]
FROM
Sisters S1, Brothers B1, Uncles U1, MainTable
WHERE
D1.MainID = MainTable.ID
AND S1.MainID = MainTable.ID
AND B1.MainID = MainTable.ID
FOR XML PATH('')
我想以后单独的表和concanate却是越来越慢得多的方式。我能做什么?
预期输出:
,1,1,1,1,2,555,333,111,222,321,561,121,331,451,672
FYI :维护有大约200.000条记录,并且每个子表有大约600.000条记录。 – jackjop
[踢坏的习惯:使用旧式JOIN](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old-style-joins。 aspx) - 在ANSI - ** 92 ** SQL标准(**超过20年前的**)中,旧式*逗号分隔的表*样式列表被替换为* proper * ANSI'JOIN'语法并且它的使用是不鼓励的 –
@marc_s我也使用了连接,速度没有太大影响 – jackjop