у меня ниже query
--->
Select * into #MostPopular from
(Select top 10
T.RowID as RowID,
CP.PostID,ISNULL(MS.Tagname,'Salud') as TagName
from CS_Posts as CP with (nolock)
INNER JOIN @TempPostIds AS T ON T.PostID = CP.PostID ----this is temp table which has RowId and PostID
Inner JOIN cs_Posts_InCategories CPC (NOLOCK) ON CPC.PostID=CP.PostID ---returns multiple categoryIDs as it has multiple entries for single unique PostID
INNER JOIN SpecialTagContent MS (NOLOCK) ON CPC.CategoryId=MS.CategoryId -- returns tagname for each unique category ID
where
T.RowID >= @RowID AND T.RowID <= @RowID + @PageSize
Order By
T.RowID )AS MostPopular
select * from #MostPopular
Фактический результат как указано ниже ->
Если вы видите фактический результат, то ROWID,PostID
равны multiple
, потому что таблица cs_Posts_InCategories
имеет multiple entries
для 906477 and so on...
Ожидаемый результат как указано ниже ->
Для каждого PostID
должно быть возвращено Top 1 tagName
, как показано выше.
Не могли бы вы помочь мне с запросом, чтобы он мог вернуть только TOP 1 Tagname/CategoryID
Угадайте проблему с приведенным ниже запросом ->
Inner JOIN cs_Posts_InCategories CPC (NOLOCK) ON CPC.PostID=CP.PostID ---returns multiple categoryIDs as it has multiple entries for single unique PostID
Я также проверил, используя запрос TOP 1 ->
ISNULL( TOP 1 MS.Tagname,'Salud') as TagName ---didnt work for me..
Заранее спасибо !!