使用来自2个不同表的字段创建表

时间:2009-07-22 04:34:19

标签: sql oracle oracle10g

我想创建一个存储来自两个不同表的值的表;

  

从表1开始:cust_id(varchar2),invoice_amt(float)

     

从表2:cust_id(来自表1),payment_date

我的桌子应该有3个字段:

cust_id, invoice_amt, payment_date

我尝试了以下内容,这显然是错误的。

create table temp1 as (
    select table_1.cust_id, table_1.invoice_amt, table_2.payment_date
      from table_1@dblink, table_2@dblink)

您的宝贵建议将会有很大的帮助。

3 个答案:

答案 0 :(得分:5)

create table temp1 as (
    select 
        table_1.cust_id,
        table_1.invoice_amt,
        table_2.payment_date 
    from 
        table_1@dblink, 
        table_2@dblink 
    where 
        table_1.cust_id = table_2.cust_id
    )

我不是神谕,但那应该做你想要的(虽然未经测试)。

答案 1 :(得分:1)

你很亲密:

create table temp1 as ( 
    select t1.cust_id, t1.invoice_amt, t2.payment_date 
      from table_1@dblink t1, table_2@dblink t2 
     where t1.cust_id=t2.cust_id)

答案 2 :(得分:1)

这取决于你将要使用它的内容,但我非常想要使用视图而不是表格:

create view temp1(cust_id, invoice_amt, payment_date) as
    select t1.cust_id, t1.invoice_amt, t2.payment_date 
      from table_1@dblink as t1 inner join table_2@dblink as t2
           on t1.cust_id = t2.cust_id

优点是它始终包含table_1和table_2的当前版本中的值。缺点是您无法编辑视图(或者,如果可以,您的编辑会影响基础表和视图)。