2017-10-06 4 views
-3

Ich habe zwei Tabellen, die wie folgt aussehen:SQL Merge-Tabellen mit zwei verschiedenen Spalten

tabelle1:

enter image description here

table2:

enter image description here

und ich möchte um sie zu verbinden, um eine Tabelle mit einem Header wie folgt zu erstellen:

Die ersten neun Zeilen sollten die erste Tabelle mit leeren Werten in den letzten drei Spalten sein, gefolgt von den drei Zeilen aus der zweiten Tabelle mit leeren Werten in den ersten vier Spalten. Es tut mir leid, dass ich keine Bilder oder einen dritten Link posten kann, aber mein Ruf ist zu gering. Ich hoffe es ist verständlich.

Ich habe versucht, eine neue Tabelle zu erstellen und alles aus beiden mit union auszuwählen, aber das hat nicht funktioniert. Kann mir jemand helfen?

Danke!

+0

Sie haben die Tabellenstruktur und Beispieldaten als Text setzen in den Fragen, nicht in externen Bildern, so können die Leute es leicht sehen und kopieren/einfügen, wenn sie Tests machen wollen. –

Antwort

0

Sie können ALTER verwenden, um die letzten drei Spalten der Tabelle 1. Von dort INSERT Tabelle 2 auf Tabelle 1. So etwas wie hinzufügen Dies.

ALTER table1 ADD dependent varchar(16) 
ALTER table1 ADD favalue varchar(16) 
ALTER table1 ADD probf varchar(16) 

INSERT INTO table1(dependent, fvalue, probf) 
    SELECT * FROM table2 
0

Dies ist, wie ich an den Finaltisch aussehen möchte: enter image description here

0

können Sie verwenden eine Kombination von Verknüpfungen und Gewerkschaften

LEFT JOIN die beiden Tabellen in der ersten Abfrage auf Feldern, die ein Spiel nicht haben dann UNION die zweite Abfrage mit einem RIGHT JOIN der gleichen Tabellen.

Die LEFT JOIN wird nur die Ergebnisse aus der ersten Tabelle zeigt, dann wird die RIGHT JOIN nur die Ergebnisse aus dem zweit

Etwas zeigen wie:

SELECT * FROM table1 as t1 
LEFT JOIN table1 as t2 on t1.variablenname = t2.fValue 
UNION 
SELECT * FROM table1 as t1 
RIGHT JOIN table1 as t2 on t1.variablenname = t2.fValue; 
Verwandte Themen