echtes verbinden mehrere Tabellen
Luise
- mysql
Ich habe 12 Tabellen, alle sind gleich aufgebaut. Diese würde ich gerne in eine einzige zusammenführen. Aber ich finde nichts darüber, nur Abfragen bzüglich mehrere Tabellen.
Kann mir da jemand weiterhelfen?
Luise
Ich habe 12 Tabellen, alle sind gleich aufgebaut. Diese würde ich gerne in eine einzige zusammenführen.
CREATE TABLE tabNeu LIKE tab1;
INSERT INTO tabNeu (
SELECT tab1.spalte1, tab1.spalte2 FROM tab1
UNION
SELECT tab2.spalte1, tab2.spalte2 FROM tab2
);
Da die Tabellen per Definitionem alle gleich sein sollen, würde hier auch SELECT * taugen, um Schreibarbeit zu sparen (aber ich würde vorher nochmal genau gucken ob sie wirklich alle gleich sind :) ).
Es ist auch zu berücksichtigen, wie groß die Einzeltables sind. Ein UNION über alle 12, der per INSERT in die neue Tabelle gepumpt wird, wird in einer einzigen Transaktion durchgeführt. Es ist möglich, dass das den Log der Datenbank sprengt. Man kann es auch teilen:
CREATE TABLE tabNeu LIKE tab1;
INSERT INTO tabNeu SELECT * FROM tab1;
INSERT INTO tabNeu SELECT * FROM tab2;
INSERT INTO tabNeu SELECT * FROM tab3;
...
Rolf