Hi !
Interal_ID - soll mit einer Sequence eingefügt werden.
FREMD_ID_1 - Inhalt soll aus Tabelle Q1 kopiert werden.
FREMD_ID_2 - Inhalt soll aus Tabelle Q1 kopiert werden.
TITLE - soll aus Q2 kommen
ORT - soll aus Q2 kommenZur weiteren Erläuterung: In der jetzigen Version ist
Q1.FREMD_ID_2 in Q2 ein Foreign KeyI.E.
Tabelle Q1: Tabelle Q2:
FREMD_ID_2 ---> REF_FREMD_ID_2 TITLE ORT
1 1 bla bla
Na, dann hast Du doch schon alles.
insert into neue_tabelle (internal_id, fremd_id_1, fremd_id_2, title, ort)
select sequenz_id.nextval, q1.fremd_id_1, q1.fremd_id_2, q2.title, q2.ort
from tabelle_q1 q1, tabelle_q2 q2
where q1.fremd_id_2=q2.ref_fremd_id_2
and q1.fremd_id in (select fremd_id_1
from tabelle_q1
minus
select fremd_id_1 from neue_tabelle)
;
Über die where-Beziehung greifst Du nur auf die Datensätze in Tabelle Q2 zu, die sich über den foreign-key in Tabelle Q1 befinden. Dazu wird bei dem and-Teil sichergestellt, daß Du nicht immer die gleichen Datensätze in die neue_tabelle schreibst. Mit einem Index auf die fremd_id_1 kannst Du die Geschwindigkeit noch verbessern.
Gruß
Hans