当前位置: 代码迷 >> Oracle管理 >> 为何同一张表会取出不同的结果
  详细解决方案

为何同一张表会取出不同的结果

热度:54   发布时间:2016-04-24 05:00:33.0
为什么同一张表会取出不同的结果?
这个问题在网上确实不知道怎么搜索,所以来坛子问下,麻烦大家了
SQL语句是这样的(无用的我已经删除了)。
SQL code
select c.name as username,c.id,w.id as userid,       w.name as usernametofrom t_o_item a,t_b_accttype b,t_acl_user c,               t_o_objectuser v,t_acl_user w          where a.itemuserid = c.id and v.userid = w.id and                 a.itemid = v.objectid and a.itemid is not null and a.itemstate = b.listvalue and                  v.objecttype = '2' and b.maintype = 'itemstate'

我不能理解的地方就是,t_acl_user c和t_acl_user w两张表,一个SQL语句,同一张表出现了两次。这种写法常见吗?我怎么觉得这数据库设计的好像有问题,从一个表里取出多个对象。



------解决方案--------------------
根据楼主提供的sql,他们的取数规则是不同的。
SQL code
a.itemuserid = c.id --a表与c表的关联方式a.itemid = v.objectid and v.userid = w.id --a表通过v表与再与w表关联。关联的字段是不同的
------解决方案--------------------
这种设计很正常啊,举个最简单的例子:一个公共代码表,里面存了一个系统中需要用到的所有公共代码,

有个表用到了3类公共代码,转换时sql中公共代码表就要出现3次,很正常,很常见的用法。
  相关解决方案