2009-07-22 4 views
0

Ich möchte eine Tabelle erstellen, die Werte aus zwei verschiedenen Tabellen speichert;Erstellen von Tabellen mit Feldern aus zwei verschiedenen Tabellen

Aus Tabelle 1: cust_id (varchar2), invoice_amt (float)

Aus Tabelle 2: cust_id (aus Tabelle 1), payment_date

Meine Tabelle sollte drei Felder haben:

cust_id, invoice_amt, payment_date 

Ich habe Folgendes versucht, was offensichtlich falsch ist.

create table temp1 as (
    select table_1.cust_id, table_1.invoice_amt, table_2.payment_date 
     from [email protected], [email protected]) 

Ihre wertvollen Vorschläge werden eine große Hilfe sein.

+0

Hallo Experten, danke für Ihre Eingaben. Ich habe die Tabellenerstellung am Laufen, aber mein Problem ist, dass meine Tabelle über 7 Millionen Datensätze hat und versucht, über einen dblink auf Datensätze zuzugreifen. Kann ich die Abfrage trotzdem beschleunigen? Ich bin ein absoluter Neuling, also wird eine detaillierte Hilfe großartig sein. Vielen Dank :) – novice

Antwort

4
create table temp1 as (
    select 
     table_1.cust_id, 
     table_1.invoice_amt, 
     table_2.payment_date 
    from 
     [email protected], 
     [email protected] 
    where 
     table_1.cust_id = table_2.cust_id 
    ) 

Ich bin kein Orakel Typ, aber das sollte tun, was Sie wollen (ungeprüft, obwohl).

1

Es hängt davon ab, was Sie vorhaben, es zu benutzen für, aber ich würde dringend eine Ansicht zu verwenden, anstatt eine Tabelle versucht sein:

create view temp1(cust_id, invoice_amt, payment_date) as 
    select t1.cust_id, t1.invoice_amt, t2.payment_date 
     from [email protected] as t1 inner join [email protected] as t2 
      on t1.cust_id = t2.cust_id 

Der Vorteil ist, dass es immer die Werte aus den aktuellen Versionen von table_1 und table_2 enthält. Der Nachteil ist, dass Sie die Ansicht nicht bearbeiten können (oder, wenn Sie können, dass sich Ihre Änderungen auf die zugrunde liegenden Tabellen und die Ansicht auswirken).

+0

Der Nachteil ist auch, dass Sie Daten über DB-Link für jede Abfrage zu dieser Ansicht ziehen müssen. – jva