您的子查询的where语句有些混乱:
FROM dbo.tbl_UserAuthDetailWHERe A.UserID = U.UserID
这两个
A和
U是子查询之外,因此这一条款不会在所有限制子查询。
尝试类似的东西:
FROM dbo.tbl_UserAuthDetail A2WHERe A2.UserID = U.UserID
作为替代解决方案,SQL Server具有窗口功能:
select *from ( select row_number() over ( partition by u.UserID order by a.createdon desc) rn , * from dbo.tbl_user u join dbo.tbl_userauthdetail a on a.userid = u.userid ) as SubQueryAlias where rn = 1 -- only latest authdetail per user
或者您可以使用
cross apply:
select *from dbo.tbl_user ucross apply ( select top 1 * from dbo.tbl_userauthdetail a where a.userid = u.userid order by a.createdon desc ) a



