10 Spalten einer Tabelle in eine andere Tabelle hinzufügen

sqler

Benutzer
Beiträge
12
Hallo!

Ich möchte gerne eine Tabelle mit ca. 10 Spalter einer anderen Tabelle ergänzen. Nun könnte ich alle 10 Spalten anlegen, die zweite Tabelle in eine Temptabelle laden und dann zu der ersten Tabelle laden, aber es gibt doch sicherlich eine einfacherer Möglichkeit, oder? Wichtig ist mir, dass Tabelle1 Tabelle1 bleibt. Eine neue Tabelle mit den ganzen Daten bekomme ich ohne Probleme mit einem inner join hin.

Tabelle1
ArticleID, Beschreibung, LieferantenID, ...

Tabelle2
LieferantenID, Anschrift1, Anschrift2,....
 
Werbung:

ukulele

Datenbank-Guru
Beiträge
4.579
Sry aber verstehe ich nicht ganz. Du willst 2 Tabellen dauerhaft zu einer zusammen führen? oder nur um Daten abzufragen?
 

sqler

Benutzer
Beiträge
12
Ja, die Tabelle1 soll die Daten der Tabelle 2 enthalten. Die Tabelle2 wird danach nicht mehr benötigt.

Das Ergebnis wäre dann:
Tabelle1
ArticleID, Beschreibung, LieferantenID, ..., Anschrift1, Anschrift2,....
 

ukulele

Datenbank-Guru
Beiträge
4.579
Nun da gibt es mehrere Möglichkeiten, die aber ein bischen Aufwand bedeuten. Das einfachste ist meiner Meinung nach ein SELECT auf beide Tabellen der alles so Anzeigt wie die Daten später in der neuen Tabelle stehen sollen. Das ganze grad in die Tabellen Kalkulation deiner Wahl kopieren und zu jeder Spalte ein INSERT Statement per Formel erstellen. Neue Tabelle anlegen und dann die INSERTs ausführen. Es gibt aber noch viele andere Wege.

Alternativ ist es vieleicht sinnvoll, die Datenstruktur zu erhalten und nicht zu "denormalisieren". Hierzu könnte eine Sicht auch einfach die gewünschten Inhalte mit dem gleichen SELECT liefern.

Code:
SELECT    *
FROM    Tabelle1 t1,
        Tabelle2 t2
WHERE    t1.LieferantenID = t2.LieferantenID
 

sqler

Benutzer
Beiträge
12
Ich habe es fast befürchtet. Meine optimale Lösung wäre ein

SELECT *
FROM Tabelle2
INTO Tabelle1
WHERE Tabelle1.LieferantenID=Tabelle2.LieferantenID;

Aber diese oder eine ähnliche Lösung ist wohl nicht möglich, oder?
 

ukulele

Datenbank-Guru
Beiträge
4.579
Die einfachste Lösung wäre die Sicht, aber nur wenn die Daten gelesen werden. Man könnte auch ein reines SQL Script nehmen, welches Zeilenweise die Daten umscrheibt. Ist aber nicht ganz so einfach zu erstellen.
 
Werbung:

Charly

Datenbank-Guru
Beiträge
306
Hallo sqler,

zuerst solltest Du dir mal ein paar neue Spalten in Tabelle 1 anlegen.

Danach einfach ein INSERT in Tabelle 1 mit dem Ergebins einer Select aus Tabelle 1 und 2 mit verweis auf den Schlüssel von Tabelle1

Code:
INSERT INTO Tabelle1 (Anschrift1, Anschrift2. etc...)
SELECT Anschrift1, Anschrift2, etc... FROM Tabelle2 AS T2
JOIN Tabelle1 AS T1 ON T1.LieferantenID=T2.LieferantenID
WHERE T1.LieferantenID = Tabelle1.LieferantenID

Syntax habe ich jetzt nicht genau geprüft aber so sollte es gehen.

Gruß Charly
 
Oben