SQL Server中查询关联表Sdelki最后5条记录的正确SQL语句
解决SQL Server中关联查询取最后5条记录的问题
你的SQL语句无效的核心原因是SQL Server不支持LIMIT关键字,这是MySQL、PostgreSQL等数据库的语法,SQL Server有专属的行限制语法。
以下是两种可行的修正方案:
方案1:使用TOP关键字(兼容所有SQL Server版本)
SELECT TOP 5 Sdelki.* FROM Sdelki INNER JOIN Klients ON Sdelki.ID_Klient = Klients.ID_Klient INNER JOIN Users ON Klients.ID_user = Users.ID_user ORDER BY Sdelki.ID_sdelki DESC;
方案2:使用OFFSET ... FETCH(SQL Server 2012及以上版本支持)
这种方式更灵活,适合后续需要分页的场景:
SELECT Sdelki.* FROM Sdelki INNER JOIN Klients ON Sdelki.ID_Klient = Klients.ID_Klient INNER JOIN Users ON Klients.ID_user = Users.ID_user ORDER BY Sdelki.ID_sdelki DESC OFFSET 0 ROWS FETCH NEXT 5 ROWS ONLY;
两种方案都会先按Sdelki.ID_sdelki倒序排序,再返回前5条记录,满足你取最后5条关联记录的需求。
内容的提问来源于stack exchange,提问作者MadRadiator
相关产品推荐
相关产品推荐

