创建一个结合了多个M-M实体的SQL视图

时间:2019-05-22 18:43:07

标签: sql sql-server view

我有一个看起来像这样的数据模型:

文档具有一对多属性 文档具有一对多属性

我想创建一个视图,其中包含文档,属性和属性,但每个文档仅包含一行。通常,像上面这样的视图将通过LEFT OUTER JOINs完成每个Document-> Attribute和Document-> Property一行。

我想将所有属性合并为一个“列”,将属性合并为一个“列”,如下所示:

文档1,属性A,属性B,属性C,属性1,属性2

有没有关于如何将它们聚集在一起的指针?

CREATE VIEW [dbo].[DocSearch]
                AS
                SELECT  N.Id, N.CreatedBy, N.CreatedOn, N.ModifiedBy, N.ModifiedOn, N.DocumentContext, N.DocumentSource, 
                        N.DocumentText, N.DocumentType, N.Confidentiality, N.ExpirationDate, S.PropertyName, 
                        R.AttributeName, N.RowVersion
                FROM    dbo.Document AS N LEFT OUTER JOIN
                        dbo.DocumentProperty AS NS ON N.Id = NS.DocumentId LEFT OUTER JOIN
                        dbo.Property AS S ON NS.PropertyId = S.Id LEFT OUTER JOIN
                        dbo.DocumentAttribute AS NR ON N.Id = NR.DocumentId LEFT OUTER JOIN
                        dbo.Attribute AS R ON NR.AttributeId = R.Id

每个文档都希望将属性和属性归为一列。

0 个答案:

没有答案