我有以下结构:
Table R Table RZ (n-m) Table Z
------- ----------------- ---------
R1 R1 | Z1 Z1 | "A"
R2 R1 | Z2 Z2 | "B"
R3 R2 | Z1 Z3 | "C"
R4 R2 | Z3 Z4 | "D"
... R3 | Z1 ...
... R3 | Z2 ...
... R3 | Z4 ...
(我省略了一些额外的复杂性并进一步加入以简化)
我需要使用某些列或“R”查询“R”中的所有行,包括结果中具有表“Z”的串联“名称”列的列。
这是上面给定表格内容之后的示例:
ID of R | Name of Z
--------------------
R1 | "A,B"
R2 | "A,C"
R3 | "A,B,D"
到目前为止,R 的每一行都使用了一个标量函数,再次重新查询 R-RZ-Z 连接,连接并返回名称,但我认为这非常慢。
我尝试了 FOR XML,但我无法将提供我想要的字符串的 XML 结果与表 R 中所需的其余列结合起来。
解决这个问题的最佳方法是什么?
尝试使用
CROSS APPLY
,如下所示:输出:
像这样的东西应该工作: