两张表:
T1
t11 t12
---- ----
1 a1
2 b1
3 c1T2
t21 t22 t32
---- ---- ----
1 aa2 aa3
2 bb2 bb3
3 cc2 cc3
4 dd2 dd3想得到结果:
t11 t12 t21 t22 t32
-----------------
1 a1 1 aa2 aa3
2 b1 2 bb2 bb3
3 c1 3 cc2 cc3
null null 4 dd2 dd3
请问这样可以实现吗?如何实现?
T1
t11 t12
---- ----
1 a1
2 b1
3 c1T2
t21 t22 t32
---- ---- ----
1 aa2 aa3
2 bb2 bb3
3 cc2 cc3
4 dd2 dd3想得到结果:
t11 t12 t21 t22 t32
-----------------
1 a1 1 aa2 aa3
2 b1 2 bb2 bb3
3 c1 3 cc2 cc3
null null 4 dd2 dd3
请问这样可以实现吗?如何实现?
解决方案 »
- oracle的监听程序问题
- 求相邻的相同的数据的个数(在线等)
- Oracle Berkeley DB的的3个版本都有什么区别啊。
- 急!!oracle中函数包编译不能完成?报锁库!!
- v_$session 和 v$session 一样吗?
- 请大虾受累看看这个.pc文件!?
- 如何使数据文件联机???
- 请问如何查询一个用户下所有的表?急!
- 请问,怎么用net8连接另一台机器上的数据库?
- 只要回答一个字(没有上限)?能否在delphi的应用程序里调用oracle的exp,imp,sql loader命令?
- 请问在 oracle 中,如何解析一个字符串,要求解析出文件名,文件后缀,文件路径
- oracle 备份导入的问题,ORA-12541
但是如果T2表中的3 cc2 cc3 记录改成5 cc2 cc3 呢?
我是想取出T1的所有记录和T2的所有记录,请问可不可以实现?
2 full outer join t2
3 on (t11=t21); T11 T12 T21 T22 T32
---------- -------------------- ---------- -------------------- --------
1 a1 1 aa2 aa3
2 b1 2 bb2 bb3
3 c1 3 cc2 cc3
5 f1
4 dd2 dd3
t11 t12
---- ----
1 a1
2 b1
3 c1 T2
t21 t22 t32
---- ---- ----
1 aa2 aa3
2 bb2 bb3
5 cc2 cc3
4 dd2 dd3 这样一来,用这句select t1.*,t2.* from t1,t2 where t11(+) = t21;得到的结果是
t11 t12 t21 t22 t32 t11 t12 t21 t22 t32
----------------- -----------------
1 a1 1 aa2 aa3 1 a1 1 aa2 aa3
2 b1 2 bb2 bb3 而不是 2 b1 2 bb2 bb3
5 cc2 cc3 3 c1 3 cc2 cc3
null null 4 dd2 dd3 null null 4 dd2 dd3
也就是说只有当两表中的t11,t21字段中有相同的记录时,才有可能查出结果,如果t11,t21当中没有相同记录时,能否查出来?
union
select t1.*,t2.* from t1,t2 where t11 = t21(+);