1

ForumForumCateoryの 2 つのテーブルがあります。ForumCateoryId はマッピング フィールドです。

Forumテーブルには、次のようなフィールドが含まれています。

ForumId, Title,Description and ForumCategoryId

ForumCategory表 の内容ForumCategoryId,ForumCategory

ForumCategoryのすべてのレコードと、フォーラムの上位 1 件のタイトルと説明を表示する必要があります。

4

2 に答える 2

0

フォーラム カテゴリごとに最後のフォーラムが必要であると想定しているため、ForumId の降順でフォーラムを並べました。

select
    FC.ForumCategoryId,
    FC.ForumCategory,
    F.Title as ForumTitle,
    F.Description as ForumDescription
from ForumCategory as FC
    outer apply
    (
        select top 1 TT.*
        from Forum as TT
        where TT.ForumCategoryId = FC.ForumCategoryId
        order by TT.ForumId desc
    ) as F

このようなことを試すこともできます

select top 1 with ties
    FC.ForumCategoryId,
    FC.ForumCategory,
    F.Title as ForumTitle,
    F.Description as ForumDescription
from @ForumCategory as FC
    left outer join @Forum as F on F.ForumCategoryId = FC.ForumCategoryId
order by
    row_number() over (partition by FC.ForumCategoryId order by F.ForumId desc)
于 2012-10-14T17:40:59.013 に答える
0

top 1サブクエリで使用してみてください

select  *
from ForumCategory FC
join (select top 1 ForumId, Title,Description, ForumCategoryId
      from Forum 
      where F.ForumCategoryId = FC.ForumCategoryId 
     ) F 

またはサブクエリでaggregate functionminたとえば)使用してみてください:

select  *
from ForumCategory FC
join Forum F on  F.ForumCategoryId = FC.ForumCategoryId
             and F.ForumId = ( select min(F2.ForumId)
                               from Forum F2
                               where F2.ForumCategoryId = F.ForumCategoryId        
                              )
于 2012-10-14T17:32:53.800 に答える