1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

INSERT INTO abfrage für mehrere Datensätze

Dieses Thema im Forum "Microsoft Access" wurde erstellt von Rookie, 10 Oktober 2011.

  1. Rookie

    Rookie Neuer Benutzer

    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
     
  2. ukulele

    ukulele Datenbank-Guru

    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?
     
  3. Rookie

    Rookie Neuer Benutzer

    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…
     
  4. Rookie

    Rookie Neuer Benutzer

    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
     
  5. ukulele

    ukulele Datenbank-Guru

    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.
     

Diese Seite empfehlen