SQL2005 Join same Name seems error

Jun 22, 2009 at 6:23 AM

因为要出差来不及查原因

 

SELECT [vd_czy].[Id],[vd_czy].[mc],[vd_group].[mc],[vd_czy].[password],[vd_czy].[p] FROM (SELECT [vd_czy].[Id],[vd_czy].[mc],[vd_group].[mc],[vd_czy].[password],[vd_czy].[p], ROW_NUMBER() OVER ( ORDER BY [vd_czy].[Id] ASC) AS __rownumber__ FROM [vd_czy] Inner JOIN [vd_group] On [vd_czy].[groupId] = [vd_group].[Id] ) AS T WHERE T.__rownumber__ >= 1 AND T.__rownumber__ <= 20

是错的

 

消息 8156,级别 16,状态 1,第 1 行
多次为 'T' 指定了列 'mc'。
消息 4104,级别 16,状态 1,第 1 行
无法绑定由多个部分组成的标识符 "vd_czy.Id"。
消息 4104,级别 16,状态 1,第 1 行
无法绑定由多个部分组成的标识符 "vd_czy.mc"。
消息 4104,级别 16,状态 1,第 1 行
无法绑定由多个部分组成的标识符 "vd_group.mc"。
消息 4104,级别 16,状态 1,第 1 行
无法绑定由多个部分组成的标识符 "vd_czy.password"。
消息 4104,级别 16,状态 1,第 1 行
无法绑定由多个部分组成的标识符 "vd_czy.p"。

 

[JoinOn(0, "vd_czy.groupId", "vd_group.Id", CompareOpration.Equal, JoinMode.Inner)]
    public abstract class vd_czy_group_join : IDbObject
    {
        [DbColumn("vd_czy.Id")]
        public abstract long Id { get; set; }

        [DbColumn("vd_czy.mc")]
        public abstract string czymc { get; set; }

        [DbColumn("vd_group.mc")]
        public abstract string groupmc { get; set; }

        [DbColumn("vd_czy.password")]
        public abstract string password { get; set; }

        [DbColumn("vd_czy.p")]
        public abstract ve_group p { get; set; }

    }

 

先放上来

 

Coordinator
Jun 28, 2009 at 2:12 PM

Is ve_group another table?

JoinTable doesn't support Relations.

Jun 29, 2009 at 2:09 AM

不,那ve_group是个Enum。

不过,我已经不打算用DbEntry内建的Join了。这个bug俺暂时不研究了。

刚才粗略看了一下,估计这个bug的根源在于SELECT [vd_czy].[Id],[vd_czy].[mc],[vd_group].[mc],这里面的两个mc没有AS,应该分别AS一个别名。单具体为什么DbEntry没有自动加上AS我就不太清楚了。

最近在研究索引视图和索引分区。

以后凡是涉及 Join的东西,我还是计划用View了。

Jun 29, 2009 at 2:10 AM
  • 查询优化器查找视图索引列与查询中的元素之间的匹配,例如:
    • WHERE 子句中的搜索条件谓词
    • 联接操作
    • 聚合函数
    • GROUP BY 子句
    • 表引用
  • Coordinator
    Jun 29, 2009 at 2:51 AM
    This discussion has been copied to a work item. Click here to go to the work item and continue the discussion.
    Jul 2, 2009 at 4:42 AM

    不过,老大,非常不好意思的说,这个也许不是 bug。。。我刚才回顾了一下这个帖子,突然发现的。。。虽然代码已经删掉了。。

    可能是我写错了,IDbObject模式下不应该出现abstract 和{ get; set; }。也许是这样的原因吧。

    不好意思,最近比较忙

    Coordinator
    Jul 5, 2009 at 2:27 AM

    这个确实有问题的 —— 在 Joined table 使用 Paged select 的时候,原因是 Sql Server 2005 不支持 x.y as T :

    SELECT [vd_czy].[Id] FROM (SELECT [vd_czy].[Id] FROM [vd_czy]) AS T