JOIN über zwei Datenbanken

Soapp

Erfahrenes Mitglied
Kann man mit JOIN auch 2 Tabellen aus 2 verschiedenen MYSQL-Datenbanken verknüpfen ?



Soapp
 
Ja, man kann, wenn der angemeldete User Rechte auf beiden Datenbanken besitzt und diese auf einem MySQL-Server liegen (getestet mit 4.1.10).

Zugriff:
datenbankname.tabellenname
im ON-Teil: datenbankname.tabellenname.feldname

Gruß hpvw
 
hpvw hat gesagt.:
Ja, man kann, wenn der angemeldete User Rechte auf beiden Datenbanken besitzt und diese auf einem MySQL-Server liegen (getestet mit 4.1.10).

Zugriff:
datenbankname.tabellenname
im ON-Teil: datenbankname.tabellenname.feldname

Gruß hpvw

wie konstruiere ich aber die zwei connections ?
einfach untereinanderschreiben und dann den JOIN machen ?

$link = mysql_connect('localhost', 'd001909d', 'xxx')or die('Could not connect: ' . mysql_error());
mysql_select_db('d001909d') or die('Could not select database');


$link2 = mysql_connect('localhost', 'd002721a', 'xxx')or die('Could not connect: ' . mysql_error());
mysql_select_db('d002721a') or die('Could not select database');
 
Es geht nicht mit 2 Connections.
Ein Beispiel:
PHP:
<?php
    mysql_connect("server" , "user" , "pass") or die(mysql_error());
    $res = mysql_query("select *
                        from db1.tab1
                        join db2.tab2
                          on db1.tab1.pk=db2.tab2.fk") or die(mysql_error());
    while ($row=mysql_fetch_assoc($res)) {
        print_r($row);
    }
?>
Gruß hpvw
 
hpvw hat gesagt.:
:
PHP:
...
on db1.tab1.pk=db2.tab2.fk") or die(mysql_error());
...

Hi,

wofür steht das .pk, bzw .fk am ende (db1.tab1.pk=db2.tab2.fk)? :confused: Verstehe ich nicht. :(

Rest ist klar.

Ich möchte nämlich innerhalb einer Datenbank zwei unterschiedliche Tabellen anfragen.

Müsste dann ja eigentlich so ähnlich lauten, oder?
PHP:
<?php 
    mysql_connect("server" , "user" , "pass") or die(mysql_error()); 
    $res = mysql_query("select * 
                        from tab1 
                        join tab2 
                          on tab1.pk=tab2.fk") or die(mysql_error()); 
    while ($row=mysql_fetch_assoc($res)) { 
        print_r($row); 
    } 
?>


Beste Grüße,
preko
 
Zuletzt bearbeitet:
Geht dies auch, wenn man pro Datenbank einen eigenen User hat und keinen globalen User, der sich überall hin verbinden darf?

Also quasi ein Login während des Select`s? (Ähnlich wie ein connect_by bei Oracle)
 

Neue Beiträge

Zurück