2016-11-08 3 views
-1

ich zwei Quellentabellen haben, TABLE_1 und TABLE_2db2 INSERT INTO Zieltabelle aus mehreren Quelltabellen

Sie haben jeweils eine Spalte mit Daten greifen Ich mag würde, und haben jeweils die gleiche Anzahl von Zeilen und ich d‘sie in einer dritten Tabelle zusammenpassen paarweise wie folgt:

Column_A | Column_B 
    Val1 | ValA 
    Val2 | ValB 
    Val3 | ValC 
    Val4 | ValD 

bei der Verwendung dieser Syntax, um die Daten in Table_3 überein nicht auf, die Reihen in Column_B werden mit fehlenden Feldern bevölkert statt in der Nähe der Column_A Werte ausgerichtet.

+0

Setzt man die Spalten in der Auswahlliste in Klammern völlig nutzlos ist. –

Antwort

2

Erstens, nur weil Sie die gleichen Zeilen haben bedeutet nicht, dass Sie sie leicht kombinieren können. Sie können sie sich zusammenschließen:

INSERT INTO Table_3 (Column_A, Column_B) 
    SELECT t1.Column_A, t2.Column_B 
    FROM Table_1 t1 JOIN 
     Table_2 t2 
     ON t1.?? = t2.?? 

Ihre Frage nicht klären, was die JOIN Schlüssel sein sollte.

Wenn Sie nicht JOIN Tasten haben aber beliebige Paare möchten, können Sie verwenden row_number() machen einen join Taste zuweisen:

INSERT INTO Table_3 (Column_A, Column_B) 
    SELECT t1.Column_A, t2.Column_B 
    FROM (SELECT t1.*, ROW_NUMBER() OVER (ORDER BY Column_A) as seqnum Table_1 t1 
     ) JOIN 
     (SELECT t2.*, ROW_NUMBER() OVER (ORDER BY Column_B) as seqnum Table_2 t2 
     ) t2 
     ON t1.seqnum = t2.seqnum; 
+0

Danke, da ich keinen Join-Schlüssel habe, funktioniert das großartig. – joshi123