日期:2014-05-19  浏览次数:20687 次

借人气 full join 在不同数据库有不同结果,知道的一定要近来看下(内详)
两张表   :
表aa  
字段:  
  ID   INT   自动增长
  客户   char(10)
  物品   char(10)
  数量   int
表bb  
字段:  
  ID   INT   自动增长
  客户   char(10)
  物品   char(10)
  数量   int

表aa   :
数据:
  ID   客户   物品   数量
  1     1           1         1


表bb   :
数据:
  ID   客户   物品   数量
  1     2           2         3
  2     2           2         1
  3     1           1         4

查询语句:
select   a1.*,b1.*
from
(select   客户,物品,sum(数量)   from   aa   group   by   客户,物品)a1
full   join
(select   客户,物品,sum(数量)   from   bb   group   by   客户,物品)b1
on   a1.客户=b1.客户   and   a1.数量=b1.数量

在本地数据:结果是
  a1.客户   物品   数量   b1.客户   物品   数量
        1         1         1             1             1         4
        NULL   NULL   NULL       2             2         4
在另一数据:结果是
  a1.客户   物品   数量   b1.客户   物品   数量
        1         1         1             1             1         4
        NULL   NULL   NULL       2             2         null
        NULL   NULL   NULL       2             2         null

b1里面的(没有跟A对应起来的)数据的分组效果就没有了。郁闷,望有人能知道原因!


------解决方案--------------------
没有用过Oracle,帮顶