2017-04-03 21 views
1

因此,這裏是一個場景是這樣的:如何用sitecore中的sql查詢找到一個項目的所有字段值?

發現Sitecore的 具體父模板項目的所有項目領域的值(即假設我想列出新聞列表,其中新聞列表是新聞項目類型字段值)

與SQL查詢,所以我正在做的與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是新聞項目 和fieldid的ID是newstype的ID

現在我想添加一列作爲新聞的查詢

那麼我該怎麼做呢?

+1

你的問題還不清楚。你能否提供一些樣本數據和預期產出? – scsimon

回答

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}' 
+0

嗨馬雷克我檢查,它的工作很好,謝謝! –

+1

我也嘗試了一種替代方法,它的工作原理是SELECT distinct S.ItemId,S.Value AS NewsType,T.Value AS NewsOf, 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, [DBName]。[dbo]。 [SharedFields] T, WHERE I.ParentID = '{XXXX-XXXX-XXX}' AND S.FieldId = '{YYYYYY-YYY-YYYYYY}' AND T.FieldId ='{ZZZ-ZZZZZZ-ZZZZ -ZZZ}' AND S.ItemId = T.ItemId –

相關問題