簡體   English   中英

在SQL中使用分組依據和多列獲取兩個聯接表

[英]Fetching Two Joined Tables in SQL With Group By and Multiple Columns

我已經閱讀了這里的每個相關問題,但無法弄清或修改接受的答案來完成我想要的。

我有兩個表:

新聞:ID,標題,類別ID新聞類別:ID,標題

我想列出所有NewsCategories並在同一Sql查詢中包括屬於該類別的News的10行。

我現在使這個查詢工作:

Select C.Id As CategoryId, C.Title As CategoryTitle, N.Id, N.Title
From NewsCategories C, News N
Where N.CategoryId In (C.Id)
Order By C.Id Desc

但是在不限制NewsCategories的情況下,無法弄清楚如何限制返回的“新聞”的數量。

只需使用OUTER APPLY

SELECT C.Id AS CategoryId, C.Title AS CategoryTitle, N.Id, N.Title
From NewsCategories C
OUTER APPLY (
   SELECT TOP 10 *
   FROM News 
   WHERE CategoryId = C.Id
) AS N
ORDER BY C.Id Desc

根據您的要求和News表模式,您可以在OUTER APPLY子查詢上執行附加的ORDER BY ,例如,獲取每個類別的10個最新新聞或按字母順序排列的10個熱門新聞,等等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM