当前位置: 代码迷 >> Oracle认证考试 >> oracle 查询话语疑惑!
  详细解决方案

oracle 查询话语疑惑!

热度:6413   发布时间:2013-02-26 00:00:00.0
oracle 查询语句疑惑!!!
select 
  a.col1,
  b.col1
from
  a,
  b
如果我一个表有数据,一个表没数据就查不出来数据,这是什么原因阿?
我也没加关联条件,或者其它的条件!
------解决方案--------------------------------------------------------
SQL> create table a(col1 varchar2(10));

表已创建。

SQL> create table b(col2 varchar2(10));

表已创建。

SQL> insert into a values('aaaaa');

已创建 1 行。

SQL> insert into a values('bbbbbb');

已创建 1 行。

SQL> select col1,col2 from a full outer join b on 1=1;

COL1                 COL2
-------------------- --------------------
aaaaa
bbbbbb

------解决方案--------------------------------------------------------
简单的说,两个表不加关联条件的记录数就等于两个表记录的乘积,如果一个表的记录数是0,乘积数也就为零,这样就没有记录了。
------解决方案--------------------------------------------------------
加不加关联条件,两个表都要做乘积。
------解决方案--------------------------------------------------------
一个集合为空集,则迪卡尔积也为空集。
所以没有数据。
  相关解决方案