Welcome to Arkanis Development

SQL-Abfragen über mehrere Datenbanken

Published

This post is written in German

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 as db_name.tbl_name to specify a database explicitly. You can refer to a column as col_name, tbl_name.col_name, or db_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.

2 comments for this post

leave a new one

#1 by
S. Senger
,

Hi, mir fallen dazu massenhaft Anwendungen ein: z. B. eine Append-Query in eine separate Datenbank

#2 by
Steven
,

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. :)

Leave a new comment

Having thoughts on your mind about this stuff here? Want to tell me and the rest of the world your opinion? Write and post it right here. Be sure to check out the format help (focus the large text field) and give the preview button a try.

Format help

Please us the following stuff to spice up your comment.

An empty line starts a new paragraph. ---- print "---- lines start/end code" ---- * List items start with a * or -

or