Создание таблиц с полями из 2 разных таблиц - PullRequest
1 голос
/ 22 июля 2009

Я хочу создать таблицу, в которой будут храниться значения из двух разных таблиц;

Из таблицы 1: cust_id (varchar2), invoice_amt (float)

Из таблицы 2: cust_id (из таблицы 1), дата платежа

В моей таблице должно быть 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 ]

5 голосов
/ 22 июля 2009
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 голос
/ 22 июля 2009

Это зависит от того, для чего вы собираетесь его использовать, но я бы очень хотел использовать представление вместо таблицы:

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

Преимущество в том, что оно всегда содержит значения из текущих версий таблиц_1 и таблиц_2. Недостатком является то, что вы не можете редактировать представление (или, если можете, ваши изменения влияют как на базовые таблицы, так и на представление).

1 голос
/ 22 июля 2009

Вы были близки:

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...