INSERT INTO abfrage für mehrere Datensätze

Rookie

Neuer Benutzer
Beiträge
3
Hallo Allerseits,

leider konnte ich mein Problem mit dem Durchsuchen verschiedener Foren nicht lösen.
Es geht dabei um Befüllen einer Tabelle mit Datensätzen aus einer zweiten Tabelle.
In den Beiden Tabellen gibt es eine Spalte, die denselben Namen trägt und zum Großteil auch gleiche Inhalte in den beiden Tabellen hat. Die Inhalte bestehen aus Texten/Sätzen.
Ein und derselbe Inhalt kommt in Beiden Tabellen jeweils nur ein Mal vor (höchstens).
Bei Übereinstimmung des Inhaltes, sollen Datensätze aus Tabelle 1 in die Tabelle 2 geschrieben werden.
Folgendes hab ich ausprobiert und bin gescheitert (wieso weiß ich auch, nur fällt mir die richtige Lösung nicht ein):

INSERT INTO Tabelle1(Straße, Hausnummer, PLZ)
SELECT Straße, Hausnummer, PLZ
FROM Tabelle2
WHERE Tabelle1.Name = Tabelle2.Name;

Richtig wäre es wenn ich „WHERE Tabelle1.Name = ‚Mayer’;“ eingeben würde, aber dann würde auch nur eine der Zeilen befüllt werden. Ich möchte das alles in einem Zug für alle Zeilen erledigen.

Für einen Tipp, um das Problem zu lösen, wäre ich sehr dankbar und bedanke mich im Voraus.

Grüße Rookie
 
Werbung:

ukulele

Datenbank-Guru
Beiträge
4.702
Bei Übereinstimmung des Inhaltes, sollen Datensätze aus Tabelle 1 in die Tabelle 2 geschrieben werden.

Heisst das, Datensätze die in Tabelle2 vorhanden sind, aber in Tabelle1 nicht sollen unbeachtet bleiben?
Ich vermute mal du möchtest die Datensätze nicht nochmal in Tabelle1 schreiben sondern mit den Werten aus Tabelle2 aktuallisieren?
Spricht etwas dagegen, die Tabelle1 vorher zu leeren?
 

Rookie

Neuer Benutzer
Beiträge
3
Hallo Ukulele,

es sollen aus der Tabelle2 die Datensätze (Straße, Hausnummer, PLZ) in die Tabelle1 geschrieben werden. Sollte in den entsprechenden Spalten in der Tabelle1 bereits was stehen, dann kann es ruhig überschrieben werden, da die Tabelle2 die korrekten Daten beinhaltet. Aber die sind ohnehin leer. Mein Problem ist, dass ich ca. 300 Zeilen habe, mit unterschiedlichen Inhalten (Texten) und in die Abfrage nicht jedes Mal den Text selber reinschreiben/-kopieren möchte, damit dieser in der Tabelle 1 gefunden werden soll. Das wäre doch sehr aufwendig…
 

Rookie

Neuer Benutzer
Beiträge
3
Hallo Ukulele,

ich habe das Problem mittlerweile gelöst. Wie gesagt, bin kein besonders geübter SQLer ....
Mit
INSERT INTO Tabelle1(Straße, Hausnummer, PLZ)
SELECT Straße, Hausnummer, PLZ

FROM Tabelle2

INNER JOIN Tabelle1 ON Tabelle1.Name = Tabelle2.Name;

oder

INSERT INTO Tabelle1(Straße, Hausnummer, PLZ)
SELECT Straße, Hausnummer, PLZ

FROM Tabelle2

WHERE Tabelle1.Name IN(SELECT Name FROM Tabelle2);

scheint es auch zu funktionieren.
Aber ich danke dir für die schnelle Antwort
Grüße Rookie
 
Werbung:

ukulele

Datenbank-Guru
Beiträge
4.702
Wie gesagt, du musst dir erstmal darüber im klaren sein, was wann passieren soll. Der Befehl soll ja vermutlich nicht nur einmal sondern mehrfach laufen.
 
Oben