Forum Doku Wiki Blog

Forumsarchiv 2004, März
2 Tabellen aus unterschiedlichen MySQL-DB´s verknüpfen?

archivierte Beiträge lesen

  1. (DATENBANK) 2 Tabellen aus unterschiedlichen MySQL-DB´s verknüpfen? von Bernd Wagner, 06. 03. 2004, 20:07

2 Tabellen aus unterschiedlichen MySQL-DB´s verknüpfen?

Der folgende Beitrag wurde am 06. 03. 2004, 20:07 Uhr von Bernd Wagner veröffentlicht.

Hallo,

ich habe 2 Datenbanken, eine User-DB mit Userdaten und eine Spiele-DB welche u.a. eine Highscore-tabelle hat, welche aus 3 Feldern besteht: uid, spieler_id, punkte.
Die spieler_id stellt die Relation zur User-DB her, somit sind User-tabelle und Highscore-Tabelle 1:n über die spieler_id verknüpft.
Wenn ich nun eine Highscoreliste mit Usernamen etc. anzeigen möchte, würde ich gerne folgenden (abgespeckt dargestellt) Select machen:

SELECT id,name,vorname FROM users, spieler_id,punkte from highscores WHERE id=spieler_id ORDER BY punkte DESC LIMIT 20

Das Prob ist, das die Tabellen in unterschiedlichen DB´s liegen (hab ich leider keinen Einfluß drauf). Bisher habe ich immer nur mit Abfragen auf Tabellen einer DB gemacht, aber wie geht ein Join aus 2 Tabellen in 2 DB´s?
Thanks for help!

Bernd

PS.: achja, der Code ist in PHP...nur der Vollständigkeit halber...

2 Tabellen aus unterschiedlichen MySQL-DB´s verknüpfen?

Der folgende Beitrag wurde am 06. 03. 2004, 20:08 Uhr von Christian Seiler veröffentlicht.

Hallo Bernd,

> Das Prob ist, das die Tabellen in unterschiedlichen DB´s liegen (hab ich leider keinen Einfluß drauf). Bisher habe ich immer nur mit Abfragen auf Tabellen einer DB gemacht, aber wie geht ein Join aus 2 Tabellen in 2 DB´s?

SELECT tabelle1.feld1, tabelle2.feld2 FROM db1.tabelle1, db2.tabelle2 ...

Viele Grüße,
Christian

2 Tabellen aus unterschiedlichen MySQL-DB´s verknüpfen?

Der folgende Beitrag wurde am 06. 03. 2004, 20:32 Uhr von Bernd Wagner veröffentlicht.

> SELECT tabelle1.feld1, tabelle2.feld2 FROM db1.tabelle1, db2.tabelle2 ...
>
> Viele Grüße,
> Christian

Hi Christian, thanks für die schnelle Hilfe, aber wie mach ichs in PHP? Ich habe mir folgende Funktion geschrieben, welche ich "include":

if(! $link=mysql_connect($MySQL_Host,$MySQL_User,$MySQL_passw))
{
 echo"Failure to connect to Database\\n"; //Failure to connect to the DB
exit;
}
function send_sql($db,$sql) // SQL-Uebermittlungsfunktion
{
 if((! mysql_select_db($db))||(! $res=mysql_query($sql)))
  {
  echo "Failure in Query"; //Failure in Query-Statement
  exit;
  }
 return $res;
}

mit dieser Funktion selecte ich eine DB und übergebe ihr mittels mysql_query den SELECT. Dabei wähle ich mit mysql_select_db eine DB(tja nur eine geht hier scheints) aus. Deswegen: Wie würde Dein o.g. SELECT in PHP aussehen? Ansonsten müsste ich mir mit dem Zwischenschritt helfen, das Ergebnis der Highscore-Tabelle in einem Array zu speichern und die Arraywerte (die spieler_id´s) mittels einer SQL-Abrageschleife in der User-DB durchgehn, das würde denke ich wesentlich langsamer sein, oder?

greets
Bernd

2 Tabellen aus unterschiedlichen MySQL-DB´s verknüpfen?

Der folgende Beitrag wurde am 06. 03. 2004, 20:39 Uhr von Christian Seiler veröffentlicht.

Hallo Bernd,

> Hi Christian, thanks für die schnelle Hilfe, aber wie mach ichs in PHP?

Bsp: Du hast zwei DBs, db1 und db2. In db1 befindet sich die Tabelle alpha, in db2 die tabelle beta. Du willst beide Tabellen nun über die Spalte id verknüpfen:

mysql_select_db ("db1");
$res = mysql_query ("SELECT alpha.name, beta.ort FROM alpha, db2.beta WHERE alpha.id = beta.id");

Viele Grüße,
Christian

2 Tabellen aus unterschiedlichen MySQL-DB´s verknüpfen?

Der folgende Beitrag wurde am 06. 03. 2004, 20:59 Uhr von Bernd Wagner veröffentlicht.

> mysql_select_db ("db1");
> $res = mysql_query ("SELECT alpha.name, beta.ort FROM alpha, db2.beta WHERE alpha.id = beta.id");

Hi Christian,

ich denke ich hab´s nun einigermassen gerafft! Nochmals vielen vielen Dank für die ultraschnelle Hilfe! Schönes Weekend noch!

greets
Bernd

© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4