【发布时间】:2011-11-06 12:29:54
【问题描述】:
警告,“丑陋”的查询警报(MS SQL Server 2008):
SELECT BaseDocs.* FROM (
SELECT ROW_NUMBER() OVER (ORDER BY BaseDocs.DateUpdated DESC) AS Row, BaseDocs.*
FROM BaseDocs INNER JOIN DocCats ON BaseDocs.DocId = DocCats.DocId
WHERE DocCats.CatId IN (4) AND BaseDocs.BaseId = 1
) AS Paged
WHERE Row > 0 AND Row <=3
这个查询抛出这个错误:
列前缀“BaseDocs”与表名或别名不匹配 查询中使用的名称。
此查询针对这些表:
BaseDocs Table
- DocId PK
- BaseId FK
- ...
DocCategories Table
- CatId PK
- ...
DocCats (join) Table
- DocId FK PK
- CatId FK PK
在这个查询“hack”了这么久之后,我觉得我的大脑正在煎炸......但它很接近,我能感觉到。提前致谢!
【问题讨论】:
-
啊,太好了……呃,对不起……写问题时分心了。 ;) 正在编辑...
标签: sql sql-server-2008 pagination