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

Von 0 auf über 2 Mio € Umsatz in weniger als 12 Monaten – wie die Pixelwerker das nur durch SEO geschafft haben
Von 0 auf über 2 Mio € Umsatz in weniger als 12 Monaten – wie die Pixelwerker das nur durch SEO geschafft habenSEO oder SEA? Warum SEO die besserer Methode ist.

01.10.2021 | Berni

Kundengewinnung und Kundenbindung
Kundengewinnung und KundenbindungVertrieb läuft doch immer persönlich. Das funktioniert nicht mit dem Internet! Wirklich?

24.09.2021 | Berni


 

Aktuelle PHP Scripte

AdRotator Light ansehen AdRotator Light

AdRotator Light (kurz: "Arlight") ist ein kostenloser und spielend einfach zu bedienender AdServer in PHP.

18.10.2021 scripthostingnet | Kategorie: PHP/ Bannerverwaltung
WebCounter by Scripthosting.net ansehen WebCounter by Scripthosting.net

Der WebCounter von Scripthosting.net ist ein kostenloser Besucherzähler in PHP. Seine Daten speichert er in einer SQLite oder MySQL Datenbank ab.

17.10.2021 scripthostingnet | Kategorie: PHP/ Besucherzaehler
Simple CMS PHP ansehen Simple CMS PHP

Simple CMS PHP is a very simple content management system. You just create a page content into the admin area and then copy the code for this content and paste it into the page of your website, where you want the content to appear. You do not need of any

01.10.2021 nevenov | Kategorie: PHP/ CMS
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 14:38 Uhr.