我想创建一个存储来自两个不同表的值的表;
从表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)
您的宝贵建议将会有很大的帮助。
答案 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的当前版本中的值。缺点是您无法编辑视图(或者,如果可以,您的编辑会影响基础表和视图)。