聚合不应出现在 WHERE 子句中,除非该聚合位于 HAVING 子句或选择列表所包含的子查询中,并且要对其进行聚合的列是外部引用。
select top 10 a.Id,a.Title,a.PostDate,b.Title as ColumnName from Xk_Article a Left Join Xk_Column b On a.ColumnId = b.Id where a.Id>(select max(a.Id) from (select top 10 a.Id from Xk_Article a Left Join Xk_Column b On a.ColumnId = b.Id order by a.Id DESC ) AS TBMinID) order by a.Id DESC
select top 10 a.Id,a.Title,a.PostDate,b.Title as ColumnName from Xk_Article a Left Join Xk_Column b On a.ColumnId = b.Id where a.Id>(select max(a.Id) from (select top 10 a.Id from Xk_Article a Left Join Xk_Column b On a.ColumnId = b.Id order by a.Id DESC ) AS TBMinID) order by a.Id DESC
from Xk_Article a Left Join Xk_Column b
On a.ColumnId = b.Id
where a.Id>(select max(Id)
from (select top 10 t1.Id
from Xk_Article t1 Left Join Xk_Column t2
On t1.ColumnId = t2.Id order by t1.Id DESC ))
order by a.Id DESC
看一看以上语句。
select top 10 a.Id,a.Title,a.PostDate,b.Title as ColumnName
from Xk_Article a
Left Join Xk_Column b On a.ColumnId = b.Id
where a.Id > (
select max(a.Id) Id
from Xk_Article a
Left Join Xk_Column b On a.ColumnId = b.Id
--order by a.Id DESC --为默认排序不需要添加
)
order by a.Id DESC
--不过应该是没有结果
因分析业务逻辑的实现存在问题,建议将数据和期望结果贴出。
FROM Xk_Article a
LEFT JOIN Xk_Column b
ON a.ColumnId = b.Id
WHERE a.Id>(
SELECT MAX(Id)
FROM (
SELECT TOP 10 a.Id
FROM Xk_Article a
LEFT JOIN Xk_Column b
ON a.ColumnId = b.Id
ORDER BY a.Id DESC
) AS TBMinID
)
ORDER BY a.Id DESC