php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 15-03-2005, 13:17
Quetschi
 PHP Expert
Links : Onlinestatus : Quetschi ist offline
Registriert seit: Dec 2004
Beiträge: 3.136
Quetschi wird schon bald berühmt werden
Standard [MySql] Wie Tabellen zweier Datenbanken Joinen?

Hallo Leute,

Google und Forumssuche hab ich ausführlich benutzt, find aber nicht so recht die passende Antwort.

Mein Problem ist das ich Daten aus 2 Tabellen die auf unterschiedlichen Datenbanken liegen abfragen (über PHP) muss.

Mit einem Join dürfte ich meines Wissens nach nicht weit kommen, soweit ich weis wird das bei MySql nicht datenbankübergreifend unterstützt.

Nun bin ich am überlegen wie ich das Problem Client-seitig (PHP) am besten umgehe. Ich hätte 2 Lösungsansätze weiß jedoch nicht welchem ich den Vorzug geben soll:

1. ich lese eine Tabelle komplett aus und lade sie als Temporäre HEAP-Tabelle in die andere Datenbank und führe hier erst den Join auf die 2. Tabelle aus wenn ich die eigentliche Abfrage ausführe.

2. Ich führe erst die eigentliche Abfrage aus und 'sammle' sozusagen die ID's der Ergebnisdatensätze und frage mit diesen ID's dann die 2. Tabelle ab.

Beide Lösungen sind meiner Meinung nach etwas ungelenk um nicht zu sagen unprofessionell, darum frage ich euch was ihr meint welches das kleinere Übel wäre???

Oder kennt jemand von euch einen professionelleren Weg??

Vielen Dank für euere Hilfe

Gruss
Quetschi
Mit Zitat antworten
  #2 (permalink)  
Alt 15-03-2005, 13:32
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard Re: [MySql] Wie Tabellen zweier Datenbanken Joinen?

Zitat:
Original geschrieben von Quetschi
Mit einem Join dürfte ich meines Wissens nach nicht weit kommen, soweit ich weis wird das bei MySql nicht datenbankübergreifend unterstützt.
Ausprobiert?
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #3 (permalink)  
Alt 15-03-2005, 13:33
Shurakai
 Master
Links : Onlinestatus : Shurakai ist offline
Registriert seit: May 2004
Ort: Bergisch Gladbach
Beiträge: 3.084
Shurakai ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Klar geht das mit nem Join....

SELECT * FROM datenbankname.tabellenname LEFT JOIN datenbankname2.tabellenname ON datenbankname2.tabellenname.spaltenname = datenbankname.tabellenname.spaltenname
Mit Zitat antworten
  #4 (permalink)  
Alt 15-03-2005, 14:21
Quetschi
 PHP Expert
Links : Onlinestatus : Quetschi ist offline
Registriert seit: Dec 2004
Beiträge: 3.136
Quetschi wird schon bald berühmt werden
Standard

Danke für die Antworten

Auf das, dass man im Statement auch die Datenbanknamen mit angeben kann wär ich nie gekommen, weil keines meiner Bücher so etwas behandelt.

Allerdings klappt mir das jetzt noch nicht so recht.

Hier mal ein exemplarisches Codebeispiel wie das bei mir nun aussieht:

PHP-Code:
$db1 db_conn1();
$db2 db_conn2();
    
$query "SELECT * FROM db1.bw_adressen LEFT JOIN db2.pauschalen
ON db1.bw_adressen.ID = db2.pauschalen.ID_bw_adressen
WHERE db1.bw_adressen.ID = 8"
;

$res mysql_query($query); 
mysql_error() sagt mir folgendes:

Access denied for user: 'dbxxx@%' to database 'dbyyy'

Ich hab ja leider keinen Benutzer zur Verfügung mit dem ich auf beiden Datenbanken lesen könnte, sondern ich muss mit 2 Verbindungskennungen arbeiten.

eine der Verbindungskennungen bei mysql_query() zu verwenden bringt mich ja auch ned weiter und mehr als eine darf ich ja nicht angeben.

Gibts da trotzdem eine Möglichkeit??

Gruss
Quetschi
Mit Zitat antworten
  #5 (permalink)  
Alt 15-03-2005, 14:28
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

Na das sind ja ganz andere Voraussetzungen.

Wenn du keinen Benutzer hast, der auf beiden Datenbanken Leserechte besitzt, dann musst du dir wohl oder übel die Rechte besorgen, oder die Tabelle auslesen, als temp. Tabelle in die andere DB packen und dann joinen.

Hättest du aber auch ruhig früher schreiben können


P.S. Ich hab mal davon gehört, dass angeblich in Büchern nicht immer alles steht...
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #6 (permalink)  
Alt 15-03-2005, 14:35
Quetschi
 PHP Expert
Links : Onlinestatus : Quetschi ist offline
Registriert seit: Dec 2004
Beiträge: 3.136
Quetschi wird schon bald berühmt werden
Standard

Sorry, das war mir nicht von vornherein klar dass das Vorraussetzung ist. Hätt ich das gewusst wär ich wahrscheinlich gar ned hier gelandet

Mal sehen ob Strato (bitte kein Komentar ) gewillt ist mir einen entsprechenden User einzurichten. Die Datenbanken würden schließlich auf dem gleichen Server (Business) liegen aber leider hab ich keine Möglichkeit die User selbst zu verwalten sonst wär ich eh längst anders vorgegangen.

Trotzdem Vielen Dank ein klein wenig schlauer bin ich ja wieder geworden.

Quetschi
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Projektmanagement Damals und Heute
Projektmanagement Damals und HeuteWerfen Sie einen Blick auf das, was sich verändert hat, und entdecken Sie, wo die Zukunft dieses Gebietes hinsteuert.

18.01.2021 | Berni

Arbeitsmanagement-Tools
Arbeitsmanagement-ToolsWarum jedes Team Arbeitsmanagement-Tools benötigt. Man schätzt, dass 25% eines durchschnittlichen Mitarbeiter-Tages durch ineffiziente Arbeit vergeudet werden.

11.12.2020 | Berni


 

Aktuelle PHP Scripte

Formmailer Bootstrap 4

Mit dem Formmailer kann man sich eMails über seine Seite zukommen lassen.

08.07.2021 arne-home | Kategorie: PHP/ Formular
Fehlerseite Bootstrap 4

Bei Aufruf einer nicht existierenden Seite, teilen Sie Besuchern mit einer eigenen Fehlerseite mit, dass die gewünschte Seite nicht gefunden wurde. Die eigene Fehlerseite sollte dasselbe Design wie die Website haben. Zudem sollte ein Link zur Startseite a

04.07.2021 arne-home | Kategorie: PHP/ Counter
Upload Bootstrap 4

Mit dem PHP - Uploadscript kann man schnell und einfach Bilder und Dateien auf den Webserver hochladen.

04.07.2021 arne-home | Kategorie: PHP/ File
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:44 Uhr.