【发布时间】:2016-09-29 01:22:56
【问题描述】:
我在修复一个通常在没有 JOIN 的情况下使用的查询时遇到了麻烦,但现在我想 JOIN 几个表,我看到一个错误的列名 id 不明确。
SQLSTATE[42000]: [Microsoft][SQL Server Native Client 11.0][SQL Server]不明确的列名 'id'.1
我使用的代码:
SELECT * FROM
(SELECT ROW_NUMBER() OVER(ORDER BY id desc)
AS RowNumber,
d.id as iddr, d.EGN, d.Names, d.NickName, d.Residence, d.PersonalMobilePhone, d.HomeAddress,d.GarantPerson, d.InsertDate,
t.id, t.PossitionName,
de.id, de.IdDriver, de.IdPAFirms,de.IdPossition
FROM dbo.Driver d
FULL JOIN dbo.DriversEmployed de ON d.id = de.IdDriver
FULL JOIN dbo.CompanyPossitions t ON de.IdPossition = t.id)
AS TEST
WHERE RowNumber BETWEEN ? AND ? + 1
如果我只尝试加入管理 SQL 工作室,则代码 JOIN 成功。所以我想麻烦id 在这里 ORDER BY id 子句。
有没有办法在这个查询中使用 JOIN? 谢谢!
【问题讨论】:
-
您需要在
ROW_NUMBER() OVER (ORDER BY id DESC)中为id加上正确的表别名。
标签: sql-server join pagination