Ich habe mehrere Tabellen mit derselben Struktur. Alles, was ich will, ist alle Ergebnisse aus allen Tabellen aus einer Datenbank zu bekommen.MySQL SELECT * FROM Tabelle1, Tabelle2, Tabelle3
Zum Beispiel:
Tabelle 1:
id | Name
-----------
1 | John
2 | Alex
3 | Patrick
4 | Donald
5 | Jane
Table2:
id | Name
-----------
1 | Ben
2 | Dale
3 | Kane
4 | Tom
5 | George
Mein gewünschtes Ergebnis mit SELECT name FROM ... ist:
Name
-------
John
Alex
Patrick
Donald
Jane
Ben
Dale
Kane
Tom
George
Gibt es eine Möglichkeit, dies einfach zu tun, ohne UNION zu verwenden wie: SELECT * FROM table1 UNION SELECT * FROM table2 UNION SELECT * FROM table3 ....
Da dies macht meine Abfrage so lange und es ist Schmerz Ich werde wahrscheinlich mehr als 20-30 Tabellen in einer Datenbank haben. Ich suche nach etwas wie SELECT * FROM tabelle1, tabelle2 .. etc.
Danke.
UPDATE
Ich habe es wie folgt aus (in PHP), ich hoffe, es hilft auch für andere:
$dbc1 = $db->query("SELECT group_concat(table_name) AS tables FROM information_schema.tables WHERE table_schema='dbname'");
Diese Abfrage Rückkehr alle Tabellennamen als 1 String mit Komma getrennt wie folgt aus: Tabelle 1, Tabelle 2, table3 .... Dann explodieren ich diese Zeichenfolge und ich in foreach-Schleife.
$dbc1_ftchd = $dbc1->fetch(PDO::FETCH_ASSOC);
foreach(explode(',',$dbc1_ftchd['tables']) as $next_tb_name){
echo $next_tb_name.'<br>';
}
Jetzt kann ich alle Tabellen verwenden, wie ich eins nach dem anderen will, anstatt sie alle gleichzeitig zu verwenden. Aber kein Problem, es ist das gleiche Ergebnis für mich.
Vielen Dank an alle, die mir geholfen :)
In welchem Sinne meinen Sie "lang"? Es dauert zu lange oder die Länge der Abfragezeichenfolge ist "zu lang"? Wenn Letzteres, meinst du, zu lang für das RDBMS zu akzeptieren, oder zu viel tippen? – Uueerdo
Mit 20-30 identische Tabellen ist ein Zeichen, dass etwas mit dem Datenbankdesign schrecklich schief gelaufen ist. – Uueerdo
Ich meine Abfrage String ist zu lang, Entschuldigung für Missverständnisse. – ofarukcaki