如何在新表中加入所有Oracle表

时间:2015-02-01 14:23:02

标签: sql oracle

我有一个带有很多表(超过60个)的oracle DB。

例如:

表1

  ID        STRING        DATA
   1          ABC         READ
   2          CDE         WRITE
   3          FGH         READ
   4          HSS         WRITE
   5          FFH         WRITE

表2

  ID     Name        Feb  
  1      Deven       12 
  4      Monish      21 
  5      Ritesh      22

表3

ID        STRING         DATA          READY
1          ABC           READ          OK
2          CDE           WRITE         NO
3          FGH           READ          OK

我需要创建一个新表,其中为每个ID显示该ID的所有db表中包含的所有字段和信息。全部在同一行。:

新表我需要创建

  ID        STRING       DATA      Name       Feb       READY
   1          ABC        READ      Deven      12        OK
   2          CDE        WRITE                          NO
   3          FGH        READ                           OK
   4          HSS        WRITE     Monish     21
   5          FFH        WRITE     Ritesh     22

我要使用哪种命令?

请耐心等待,因为我是sql语言的新手。

非常感谢

2 个答案:

答案 0 :(得分:2)

基本上,您需要从第一个表开始的大left outer join(基于您的示例数据):

select t1.id, t1.string, t1.data, t2.name, t2.feb, t3.ready
from table1 t1 left join
     table2 t2
     on t1.id = t2.id left join
     table3 t3
     on t1.id = t3.id;

如果id是唯一(或右侧)join密钥,则无法从示例数据中判断出来。但是,您应该(并且需要)知道表之间的关系,以便创建正确的查询。

如果您想在表格中使用此功能,只需将create table as语句预先挂在select之前。

答案 1 :(得分:0)

Create a view,其中包含您想要的字段。然后执行INSERT INTO ... SELECT * FROM view ...