簡體   English   中英

SQL 服務器 - 如何 select 每個用戶的最新記錄?

[英]SQL Server - How to select the most recent record per user?

我正在嘗試執行 SQL 命令,該命令應該在進入數據庫的最后一行繪制。

基本上,當用戶提交最后一個主題時(例如在這個論壇中),它會將用戶重定向到一個頁面,其中包含他的主題標題、主題段落和數據,例如用戶名和提交主題的時間。

我開始研究聲明:

SELECT @UserID, u.UsersName, t.ThreadTitle, t.ThreadParagraph
FROM Users as u
INNER JOIN Threads as t ON u.UserID = t.UserID
Where @UserID = t.UserId

我遇到的問題是我需要添加一些語句或聚合 function 以返回線程表中輸入的最后一行。 我該怎么做呢? 我需要添加什么?

在 MS SQL 中,您可以為此使用TOP 1 ,您還需要按創建的日期時間列降序排列。

SELECT TOP 1 @UserID, u.UsersName, t.ThreadTitle, t.ThreadParagraph
FROM Users as u
    INNER JOIN Threads as t ON u.UserID = t.UserID
Where @UserID=t.UserId
ORDER BY [YourDateTimeFiled] DESC

我不確定我是否完全理解了您的問題,但是如果您有線程 ID(線程表中的主鍵),請試試這個

SELECT @UserID, u.UsersName, t.ThreadTitle, t.ThreadParagraph
FROM Users as u
INNER JOIN Threads as t ON u.UserID = t.UserID
Where @UserID=t.UserId
ORDER BY t.id DESC
LIMIT 0, 1

暫無
暫無

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

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