...在查看某人的留言列表或新聞Feed中的帖子列表時,喜歡Facebook的評論預覽。SQL Server查詢 - 檢索文章列表和多個評論每篇文章預覽單個查詢?
我的數據庫目前設置有一個表articles
,主鍵爲articleID
。
我有comments
與主鍵commentID
和外鍵articleID
到適當的文章的另一個表。
當我檢索一篇關於該文章的評論文章時,這是微不足道的,並且不會給我帶來任何負擔。然而,是否可以編寫一個查詢,將這兩個表連接在一起,並檢索最近10篇文章的列表(從中構建預覽),並對每篇文章說3條評論(以創建評論預覽)?
我無法弄清楚這一點,並會喜歡有經驗的意見。歡呼和感謝!
我沒有聲望回答我自己的問題,所以我只是在這裏發佈答案。感謝兩位評論員。
哇,這是令人震驚的我以爲我明白了聯接。事情的簡單事實是我沒有。我認爲以一對多關係連接兩個表只能在左表中返回每行一行。回想起來,這顯然是錯誤的,哪一行會被退回?鑑於目前的兩個迴應,我考慮到這個問題後,發現這兩篇文章使用了那些評論帶給我的想法。因此,感謝您的幫助。
How can a LEFT OUTER JOIN return more records than exist in the left table?
Select first record in a One-to-Many relation using left join
全面回答的人與這樣的新手問題,在這個蹣跚的問題...
文章表:
ArticleID----------ArticleName
100 Art 1
200 Art 2
評論表:
CommentID----------ArticleID-------Comments------Date
1 100 test date 1
2 100 test2 date 2
3 100 test3 date 3
4 100 test4 date 4
上面引用的第二篇文章是真正解決了我的問題。就我而言,我真正需要的是這樣的:
SELECT
TOP 10 articles.*,
comments.*
FROM articles
LEFT
JOIN comments
ON articles.articleID = comments.articleID
AND comments.commentID =
(SELECT TOP 3
commentID
FROM comments
WHERE comments.articleID = articles.articleID
)
;
非常感謝!這幫助我得到了我需要的完整答案! –
太棒了!樂於幫助。你添加到你的文章中的信息也有助於理解你的問題以及你如何發現你的解決方案! :) – rhealitycheck