本帖最后由 Leedye123 于 2013-06-02 22:03:43 编辑

解决方案 »

  1.   

    多检查自己写的脚本,就知道是怎么回事了像你写的查询语句绝对不会返回你写的结果的
    查询a.* 怎么会有Bid  Bname
      

  2.   

    不好意思,查询语句应该是 SELECT * from A a Left join B b on a.Aid =b.Bid 
    我也觉得奇怪!
    我的意思是:oracle 的left join 应该也是返回左表所有记录以及右表符合条件的记录集吧?!
      

  3.   

    SQL> create table b(bid int,bname varchar2(20));表已创建。SQL> insert into a select 1,'1a' from dual;已创建 1 行。SQL> insert into a select 2,'2a' from dual;已创建 1 行。SQL> commit;提交完成。SQL> insert into b select 1,'1b' from dual;已创建 1 行。SQL> insert into b select 2,'2b' from dual;已创建 1 行。SQL> insert into b select 3,'3b' from dual;已创建 1 行。SQL> commit;SQL> select * from a;       AID ANAME
    ---------- --------------------
             1 1a
             2 2aSQL> select * from b;       BID BNAME
    ---------- --------------------
             1 1b
             2 2b
             3 3bSQL> select a.* from a left join b on a.aid=b.bid;       AID ANAME
    ---------- --------------------
             1 1a
             2 2a
      

  4.   

    非常感谢楼上各位的回复,我们现在用的oracle 11G 出现了各种问题:
    1.left join 返回的结果不正确;(返回的记录行数多于左表的总记录数,如上所述);
    2.delete删除某条记录数据且commit提交后,当时查询该记录查不出来,但过一会(20秒内)该记录又出现了.
    3.修改表结构(如增减字段)提交后,当时貌似可以了,过会(20秒内)多刷新几下却又还原了!这些个问题很诡异啊!各位有何高见呢?