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,乘积数也就为零,这样就没有记录了。
------解决方案--------------------------------------------------------
加不加关联条件,两个表都要做乘积。
------解决方案--------------------------------------------------------
一个集合为空集,则迪卡尔积也为空集。
所以没有数据。