huangqiang 发表于 2007-5-16 18:11

900条记录左联接一张表,最终得出了700条记录,不知道是哪出错了.

本人刚刚学习SQL,碰到了这个问题,请各位路过的大侠帮忙呀,跪谢.<BR>表A:a1,a2,a3,a4,四个字段,没有重复得记录,共900条记录<BR>表B:b1,b2,b3,b4,四个字段,<BR>语句如下:<BR>select A.a1,a.a2,a.a3.a4,sum(b.b3+b.b4)<BR>from a,b<BR>where a.a1=b.b1(+)<BR>   and a.a2=b.b2(+)<BR> group by a.a1,a.a2,a.a3,a.a4<BR>其中a中的一条记录对应b中的多条记录,结果得出700条记录,经反复核查,发现a中少了的200条记录,字段a1,a2在b中都没有对应的记录,是不是因为联接出来的值是空值,经过计算得出得也是空值,可是这也只应该影响得字段值呀,不应该影响到记录,我百思不得其解,赐教呀,救命呀.

huangqiang 发表于 2007-5-16 19:01

^_^,终于知道是怎么回事了,b表中还有一个字段b5,加了一个where条件,于是把那200条删掉了.

bygg 发表于 2007-5-17 09:03

不是删掉了,是排除了而已.

页: [1]

编程论坛