[MySQL] Abfrage von mehreren Datenbanken

motolink

Motorradler
ID: 124925
L
21 April 2006
288
16
Hallo,
angenommen ich habe zwei oder mehr Datenbanken die komplett gleich aufgebaut sind. Also, die Tabellen innerhalb der Datenbanken sind gleich aufgebaut, nur die Datensätze sind verschieden. Ist es möglich mit einer Abfrage auf jede dieser Datenbanken zuzugreifen?

Um mal ein Beispiel zu nennen
Code:
SELECT `feld1` FROM  `prefix_tabelle` WHERE  `id`  =1
Wie würde das aussehen wenn ich die Daten mit einer Abfrage aus "DB1" und "DB2" holen möchte.

Bitte keine Diskussion über Sinn oder Unsinn, ich möchte nur wissen ob und wie dies möglich ist!
 
1. mit mysql_connect() eine weitere verbindung herstellen
2. einfach mit mysql_Select_db() die Datenbank wechseln
3. mit den nötigen Rechten lässt siuch auch mittels "Use `db2`" die Datenbank wechseln

wo ist das Problem? :roll:

Edit: 3. hinzugefügt
 
sind die datenbanken auf dem selben server und hast du für beide lese rechte? wenn ja kannste entweder ne merge tabelle erstellen oder du du arbeitest mit
PHP:
SELECT
  *
FROM
  db1.table
UNION
SELECT
  *
FROM
  db2.table

wenn die datenbanken auf getrenten servern liegen oder du nur jeweils für eine rechte hast musst du das ganze client seitig lösen. das würde in php also heißen 2 verbindungen aufbauen und die jeweiligen daten einzelnauslesen und zusammenführen.
 
wo ist das Problem? :roll:
Na, das Problem ist das ich dafür zwei Abfragen machen muß.

Ich möchte vermeiden das ich beide Abfragen hinterher in einem Array weiterverarbeiten muß. Ich möchte also mit einer Abfrage zum gewünschten Ergebis kommen. Beim Googlen hatte ich den Eindruck das sowas geht, leider sagt da keiner so genau wie :(

[EDIT]@ZeroCCC gerade gesehen, das sieht interessant aus, hab noch nicht richtig gelesen, aber auf einem Server liegen sie schonmal!
 
Bitte keine Diskussion über Sinn oder Unsinn, ich möchte nur wissen ob und wie dies möglich ist!
Ist es eine MySQL-DB oder eine andere?
Bei MS-SQL und bei Oracle kannst du zentral irgendwelche Views erstellen, welche dir die DB von anderen Servern abfragen (und die ganze Fehlerbehandlung machen). Und du musst dann nur auf den View zugreifen.
Bei MySQL kenne ich so einen Punkt leider nicht.

anddie
 
Hi,
Ist es eine MySQL-DB oder eine andere?
es ist MySQL wie in der Threadüberschrift zu lesen ist ;)

Also, ich hab ne Lösung für mein Problem gefunden, meine Überlegungen oben waren von der DB-Struktur her schon falsch überlegt. Ich mache es jetzt einfach so
Code:
SELECT `feld1` FROM `DB`.`prefix_tabelle` WHERE `id` =1
wobei `DB` der Datenbankname ist auf den zugegriffen werden soll. Dies ist eine Variable die ich aus der Userdatenbank hole. Funktioniert einwandfrei :D