不好意思,查询语句应该是 SELECT * from A a Left join B b on a.Aid =b.Bid 我也觉得奇怪! 我的意思是:oracle 的left join 应该也是返回左表所有记录以及右表符合条件的记录集吧?!
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
查询a.* 怎么会有Bid Bname
我也觉得奇怪!
我的意思是:oracle 的left join 应该也是返回左表所有记录以及右表符合条件的记录集吧?!
---------- --------------------
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
1.left join 返回的结果不正确;(返回的记录行数多于左表的总记录数,如上所述);
2.delete删除某条记录数据且commit提交后,当时查询该记录查不出来,但过一会(20秒内)该记录又出现了.
3.修改表结构(如增减字段)提交后,当时貌似可以了,过会(20秒内)多刷新几下却又还原了!这些个问题很诡异啊!各位有何高见呢?