如何在sitecore中使用sql查询查找项的所有字段值?

时间:2017-04-03 14:08:52

标签: sql-server asp.net-mvc sitecore sitecore-mvc

所以这里有一个场景如下:

在Sitecore中查找特定父模板项的所有项的字段值 (即假设我想列出新闻列表的字段值,其中新闻列表是新闻类型项目)

使用SQL Query所以我在SharedFields和Items表的帮助下正在做什么我试图获取信息但无法获取信息。 对于单场我得到的但是多次我无法做到: 这是查询:

SELECT distinct S.ItemId, S.Value AS NewsType,

FORMAT(S.Created,'yyyy/MM/dd') AS CreatedOn, FORMAT(S.Updated,'yyyy/MM/dd') AS UpdatedOn

FROM 
[DBName].[dbo].[Items] I,
[DBName].[dbo].[SharedFields] S

WHERE I.ParentID='{XXXXXX-X-XXXXX-XXXXX-XXXXXX}'
AND S.FieldId='{YYYY-YYYY-Y-Y-Y-Y-Y-YYYYY}'

其中PARENTID是新闻项的ID and fieldid是newstype的id

现在我想在查询中再添加一列作为newsOf

那我怎么能这样做呢?

1 个答案:

答案 0 :(得分:1)

您需要在FROM子句中添加另一个表格(第二个SharedFields)并使用JOIN,如下所示:

SELECT 
    S.ItemId, 
    S.Value AS NewsType, 
    S2.Value AS NewsOf,
    FORMAT(S.Created,'yyyy/MM/dd') AS CreatedOn, 
    FORMAT(S.Updated,'yyyy/MM/dd') AS UpdatedOn
FROM 
    [DBName].[dbo].[Items] I
    JOIN [DBName].[dbo].[SharedFields] S ON S.ItemId = I.ID
    JOIN [DBName].[dbo].[SharedFields] S2 ON S2.ItemId = I.ID
WHERE 
    I.ParentID='{11111111-1111-1111-1111-111111111111}'
    AND S.FieldId='{field-1-id}'
    AND S2.FieldId='{field-2-id}'