我在加入这 3 张桌子时遇到了一些麻烦。
Table1
OWNER TYPE
O1 T1
O1 T2
O2 T1
Table2
OWNER PERSON
O1 P1
O1 P2
O2 P1
Table3
TYPE PERSON
T1 P1
T2 P2
T1 P2
我想对所有 3 个表进行连接,所以我的输出是:
FinalTable
OWNER TYPE PERSON
O1 T1 P1
O1 T2 P2
O2 T1 P2
O1 T1 P2
我基本上是在演示 5NF 如何删除虚假行。当我加入表的任意 2 个组合时,我会得到额外的数据(这是我所期望的)。
不过,我在加入第三张桌子时遇到了困难,我从来不需要加入所有 3 张桌子。
到目前为止,这是我的查询:
select r1.*, r2.PERSON from table1 r1, table2 r2, table3 r3
where r1.OWNER = r2.OWNER and r2.PERSON = r3.PERSON
我的输出返回 8 行,有些是重复的。我尝试过使用查询,但它只会进一步增加行数。
我的查询基于我拥有的 ORACLE APEX 教程书,但它没有加入像我一样布局的 3 个表。
如何加入这 3 个表以删除加入 2 个表后得到的虚假行?