我有3个格式的表
我想将输出打印为由3列T1_ID,T2_ID和一个T3_ID组成的表,该表基于所有三个表共有的“参考”列的值来显示ID。
答案 0 :(得分:0)
这是您想要的吗?
select reference as t1_id, null as t2_id, null as t3_id
from t1
union all
select null as t1_id, reference as t2_id, null as t3_id
from t2
union all
select null as t1_id, null as t2_id, reference as t3_id
from t3;
这似乎不是特别有用。但这就是我正在阅读的问题。
还是您想要full join
:
select t1.t1_id, t2.t2_id, t3.t3_id
from t1 full join
t2
using (reference) full join
t3
using (reference)
答案 1 :(得分:0)
由于您没有提供太多有关如何联接三个表的信息,所以我想您需要一个INNER JOIN,因此将仅显示符合联接条件的记录。
SQL> SELECT t1.t1_id, t2.t2_id, t3.t3_id
FROM t1
inner join t2 on ( nvl(t1.reference,'XX') = nvl(t2.reference,'XX') )
inner join t3 on ( nvl(t1.reference,'XX') = nvl(t3.reference,'XX') )
我正在使用INNER JOIN来获取与三个表中引用相同的条件相匹配的记录。为了避免空值,我不知道这是可能的,因为您什么都没说,我使用NVL来避免这些问题。请记住,“完全连接”或“内部连接”之间的区别。为此,请阅读以下文章: