Abfrage über zwei Datenbanken
Abfrage über zwei Datenbanken
am 15.03.2006 10:26:27 von Markus Bemmelen
Moin moin, werte Gemeinde!
Ich habe folgendes kleines Problem: aus einer Suchmaske heraus muss ich
in drei Tabellen die eingegebenen Argumente suchen. Problem dabei ist,
dass sich zwei dieser Tabellen in eine anderen DB befinden als die eine
Tabelle.
Bisher habe ich meine Suche so gestaltet, dass ich zuerst die eine
Tabelle in der einen Datenbank, dann die beiden anderen Tabellen in der
zweiten Datenbank ab- und das Ergebnis beider Anfragen verarbeite.
Meiner bescheidenen Meinung nach gibt es leider keinen anderen Weg.
Falls doch, wäre ich begeistert, eben diesen von Euch zu erfahren.
Gruß, Markus
Re: Abfrage über zwei Datenbanken
am 15.03.2006 10:54:42 von Sebastian Bergmann
Markus Bemmelen schrieb:
> Falls doch, wäre ich begeistert, eben diesen von Euch zu erfahren.
Eine Möglichkeit könnte die Verwendung der Federated [1] Storage Eng=
ine
sein.
--
[1] http://dev.mysql.com/doc/refman/5.0/en/federated-storage-eng ine.html=
--=20
Sebastian Bergmann http://www.sebastian-bergmann.de/=
GnuPG Key: 0xB85B5D69 / 27A7 2B14 09E4 98CD 6277 0E5B 6867 C514 B85B 5D69=
Re: Abfrage über zwei Datenbanken
am 15.03.2006 11:10:58 von Kai Ruhnau
Markus Bemmelen wrote:
> Ich habe folgendes kleines Problem: aus einer Suchmaske heraus muss ich
> in drei Tabellen die eingegebenen Argumente suchen. Problem dabei ist,
> dass sich zwei dieser Tabellen in eine anderen DB befinden als die eine
> Tabelle.
> Bisher habe ich meine Suche so gestaltet, dass ich zuerst die eine
> Tabelle in der einen Datenbank, dann die beiden anderen Tabellen in der
> zweiten Datenbank ab- und das Ergebnis beider Anfragen verarbeite.
> Meiner bescheidenen Meinung nach gibt es leider keinen anderen Weg.
> Falls doch, wäre ich begeistert, eben diesen von Euch zu erfahren.
Du kannst, wenn der aktuell angemeldete Benutzer auf beide Datenbanken
entsprechend Zugriff hat, die beiden Ergebnisse vereinigen.
Unabhängig davon, welche Datenbank du bei der aktuellen Verbindung
standardmäßig benutzt (USE datenbank), kannst du die Tabellen mit ihrer
zugehörigen Datenbank qualifizieren:
(
SELECT 'erstedatenbank', ergebnisfelder
FROM erstedatenbank.erstetabelle
WHERE bedingung
)
UNION ALL
(
SELECT 'zweitedatenbank', ergebnisfelder
FROM zweitedatenbank.zweitetablle
WHERE anderebedingung
)
Ob der String 'erstedatenbank' nötig ist, um hinterher noch entscheiden
zu können, wo das Ergebnis herkam, kannst du selber entscheiden.
HTH und Grüße
Kai
Re: Abfrage über zwei Datenbanken
am 15.03.2006 11:26:47 von Christian Kirsch
Markus Bemmelen wrote:
> Moin moin, werte Gemeinde!
> Ich habe folgendes kleines Problem: aus einer Suchmaske heraus muss ich
> in drei Tabellen die eingegebenen Argumente suchen. Problem dabei ist,
> dass sich zwei dieser Tabellen in eine anderen DB befinden als die eine
> Tabelle.
Warum ist das ein Problem? Du kannst UNION und JOIN doch auch mit
mehreren Datenbanken benutzen, geeignete Rechte vorausgesetzt.
> Bisher habe ich meine Suche so gestaltet, dass ich zuerst die eine
> Tabelle in der einen Datenbank, dann die beiden anderen Tabellen in der
> zweiten Datenbank ab- und das Ergebnis beider Anfragen verarbeite.
> Meiner bescheidenen Meinung nach gibt es leider keinen anderen Weg.
> Falls doch, wäre ich begeistert, eben diesen von Euch zu erfahren.
Meinst Du sowas:
select a.a,b.b,c.c from db1.tabelle1 a, db2.tabelle1 b, db3.tabelle1 c
where a.id=b.id and b.bla=c.fasel
?