Supportnet / Forum / Datenbanken
phpMyAdmin: 2 Tabellen zusammenführen
Frage
Hallo,
ich würde gerne 2 Tabellen vereinen, phpMyAdmin sagt aber natürlich nein, wenn bereits Datensätze mit derselben ID vorliegen. Deswegen war mein (laienhafter) Gedanke, alle Feldwerte der Spalte ID um einen bestimmten Wert zu erhöhen. Addieren also.
Geht das? Oder gibt es einfachere Wege, Tabellen zusammenzubringen?
Vorab schon mal vielen Dank!
PS: Ich bin absoluter Laie in phpMyAdmin
Antwort 1 von lorf55
Hallo Fuempf ,
also vom Prinzip her ist das ganz einfach. Du machst eine Abfrage, die die Daten aus einer Tabelle auswählt und in die andere einfügt, z.B.:
Dabei müssen die Spalten vom Typ her übereinstimmen und in Autowerte-Spalten kannst du nicht einfügen.
Hier wird die Abfrageart etwas genauer beschrieben. Wie man das mit phpmyadmin genau macht, weiß ich allerdings auch nicht.
Gruß
lorf
also vom Prinzip her ist das ganz einfach. Du machst eine Abfrage, die die Daten aus einer Tabelle auswählt und in die andere einfügt, z.B.:
INSERT INTO InDieseTabelle(A_NR, A_NAME, A_PREIS)
SELECT A.A_NR + 100,
A.A_NAME,
A.A_PREIS * 1.1
FROM AusDieserTabelle As A
Dabei müssen die Spalten vom Typ her übereinstimmen und in Autowerte-Spalten kannst du nicht einfügen.
Hier wird die Abfrageart etwas genauer beschrieben. Wie man das mit phpmyadmin genau macht, weiß ich allerdings auch nicht.
Gruß
lorf
Antwort 2 von Fuempf
Hallo lorf,
danke für deine fixe Antwort. Damit ich das anpassen kann: Kannst du mir sagen, was mit "A" jeweils gemeint ist, also die 3 Vorkommen "A." "As A" und "A_"?
Grüße
Fümpf
danke für deine fixe Antwort. Damit ich das anpassen kann: Kannst du mir sagen, was mit "A" jeweils gemeint ist, also die 3 Vorkommen "A." "As A" und "A_"?
Grüße
Fümpf
Antwort 3 von Fuempf
lorf, zu viel auf einmal. Ich denke es ist besser, nur die IDs zu erhöhen, dann klappts schon mal mit meinem Verständnis.
Also
UPDATE textpattern SET ID = ID + 150
Die Zusammenführung gelingt mir garantiert, wenn die IDs keine Nummernkonflikte mehr haben. Die korrekten INSERT-Befehle stehen ja in der Exportdatei, damit hat der reine Import in eine DB früher schon funktioniert. Danke übrigens für den Link, echt tolles Tutorial, besonders die Beispiele waren für mich Gold wert!
Danke nochmal!
Also
UPDATE textpattern SET ID = ID + 150
Die Zusammenführung gelingt mir garantiert, wenn die IDs keine Nummernkonflikte mehr haben. Die korrekten INSERT-Befehle stehen ja in der Exportdatei, damit hat der reine Import in eine DB früher schon funktioniert. Danke übrigens für den Link, echt tolles Tutorial, besonders die Beispiele waren für mich Gold wert!
Danke nochmal!
Antwort 4 von lorf55
Mit:
erhöhst du alle ID der Tabelle um 150. Das kann im Zusammenspiel mit anderen Tabellen in Abfragen Probleme machen in der Form, dass nichts mehr zusammenpasst.
Deshalb auch wenn du meinst alles im Griff zu haben, mach ein Backup deiner Datenbank. Bearbeiten-Rückgängig gibts da nicht.
Viel Glück
lorf
Zitat:
UPDATE textpattern SET ID = ID + 150
UPDATE textpattern SET ID = ID + 150
erhöhst du alle ID der Tabelle um 150. Das kann im Zusammenspiel mit anderen Tabellen in Abfragen Probleme machen in der Form, dass nichts mehr zusammenpasst.
Deshalb auch wenn du meinst alles im Griff zu haben, mach ein Backup deiner Datenbank. Bearbeiten-Rückgängig gibts da nicht.
Viel Glück
lorf
Antwort 5 von Fuempf
Danke für die Warnung, lorf. Du hast natürlich Recht, und es gibt auch Bezüge.
Nochmal Danke!
Zitat:
Bearbeiten-Rückgängig gibts da nicht.
Zumindest nicht, wenn man nach der Abänderung weitere Eingaben gemacht hat. Aber ich arbeite an einer lokalen Installation einer Website, die nur zu solchen Testzwecken aufgesetzt ist, bevor ich teuren Unfug mache. Bearbeiten-Rückgängig gibts da nicht.
Nochmal Danke!