SQL-Abfragen über mehrere Datenbanken
Vom 18. September 2006
Mein Arbeitskollege hatte heute eine interessante Idee: In einer SQL-Abfrage Tabellen aus mehreren Datenbanken verwenden. Wir dachten zuerst, dass es nicht möglich ist, doch mein Arbeitskollege hatte noch ein paar Fetzen aus dem MySQL-Handbuch im Kopf. Es geht nichts über einen kurzen Test, also hab ich einfach mal schnell eine entsprechende SQL-Abfrage an den Server geschickt:
SELECT db1.tblA.*, db2.tblB.* FROM db1.tblA, db2.tblB
Zu unserer großen Freude ging es ohne Probleme. Wenn man dann noch Tabellen-Aliase einsetzt, bleibt auch die Übersichtlichkeit erhalten:
SELECT a.*, b.* FROM db1.tblA AS a, db2.tblB AS b
Ein wenig später hab ich auch die passende Zeile im MySQL-Handbuch gefunden:
You can refer to a table within the default database as
tbl_name, or asdb_name.tbl_nameto specify a database explicitly. You can refer to a column ascol_name,tbl_name.col_name, ordb_name.tbl_name.col_name. ...
Mir fällt zwar keine wirklich konkrete Nutzung dafür ein, aber es ist auf jeden Fall eine interessante Funktion. In der Quick’n Dirty “Enterprise”-Welt kann man sowas ab und an sicher mal brauchen.
Abgelegt in: Programmieren, Arbeit
2 Kommentare zu “SQL-Abfragen über mehrere Datenbanken” #comments
1. Von S. Senger, 201 Tage später #comment-1294
Hi, mir fallen dazu massenhaft Anwendungen ein: z. B. eine Append-Query in eine separate Datenbank
2. Von Steven, 202 Tage später #comment-1295
Stimmt, das würde Sinn machen. Muss aber ehrlich sagen, dass ich seit gut 1½ Jahren nicht mehr viel SQL schreibe. Durch Ruby on Rails reduziert sich das sehr extrem (dementsprechend auch die Fehler, die dadurch anfallen).
Auf jeden Fall danke für den Tipp, werde ihn mir merken. Für den Fall der Fälle. :)