 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
30.11.2004, 14:43
|
#1
|
|
TP-Specialist
Registriert seit: Apr 2002
Ort: 743, evergreen terrace
|
[mysql] zwei datenbanken miteinander verknuepfen
 hi tpler,
ich weiss ... jetzt uebertreibe ich
aber gibts ne chance, im mysql in einer abfrage daten aus zwei unterschiedlichen datenbanken abzufragen? sowas wie ein join ueber 2 db´s?
gruss,
hardy
|
|
|
30.11.2004, 14:47
|
#2
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
Hallihallo!
Theoretisch  kann man den Namen der Tabellen einfach mit einem Prefix der jeweiligen Datenbank versehen: dbname.tabelle.feld
Hab das aber noch nie gebraucht, daher nur Theoretisch
Gruss
Jan
|
|
|
30.11.2004, 15:02
|
#3
|
|
TP-Specialist
Registriert seit: Apr 2002
Ort: 743, evergreen terrace
|
gruess dich jan
dann wird bestimmt es besser sein, auf mysql_select_db() vorher zu verzichten oder?!
was ist eigentlich mir USE ? gaebe es da vielleicht eine moeglichkeit?
aber eins hab ich ja bereits gelernt: ignoriere niemals einen moderator!
also ich probiers erstmal aus 
|
|
|
30.11.2004, 15:09
|
#4
|
|
TP-Specialist
Registriert seit: Apr 2002
Ort: 743, evergreen terrace
|
kleiner zwischenstand:
es geht nicht 
|
|
|
30.11.2004, 15:22
|
#5
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
doch. 
|
|
|
30.11.2004, 15:25
|
#6
|
|
TP-Specialist
Registriert seit: Apr 2002
Ort: 743, evergreen terrace
|
code herzeigen!!! 
|
|
|
30.11.2004, 15:27
|
#7
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
nu isser schonwieder weg. Zeig deinen und wir machen ihn "heile" 
|
|
|
30.11.2004, 15:34
|
#8
|
|
TP-Specialist
Registriert seit: Apr 2002
Ort: 743, evergreen terrace
|
also ich hab jetzt mehrere versionen ausprobiert. und die hier "scheint" mir vielleicht am logischsten:
PHP-Code:
SELECT accomoID,roomID,quantity,startDate,endDate,normalPrice,
rebate,rebatekind,firmDID,
SUM(TO_DAYS(endDate)-TO_DAYS(startDate)) AS nights,
DATE_FORMAT(startDate, '%d.%m.%Y') AS start
FROM accomo
WHERE accomoID = ".$accomoID."
GROUP BY accomoID;
SELECT name
FROM cms.data
WHERE did = ".$_SESSION['firmDID']."
also das statement unterteilen und einen zweiten select einbinden.
aber egal ... gab ueberall nur fehlermeldungen.
|
|
|
30.11.2004, 16:57
|
#9
|
|
TP-Specialist
Registriert seit: Jan 2002
Ort: TP/Dynamik
|
Zitat:
|
Zitat von Stuck Mojo
doch. 
|

__________________
Gehelft? Hier kannst du dich bedanken.
mike
|
|
|
30.11.2004, 17:10
|
#10
|
|
TP-Specialist
Registriert seit: Apr 2002
Ort: 743, evergreen terrace
|
bei mir haut es nicht hin. zumindest nicht so wie oben.
warum krieg ich eigentlich immer die fehlermeldungen?
ps: das wird mein wochen-lieblings-thread
wie frueher ... stuck mojo, longfang und ... theo
|
|
|
30.11.2004, 17:27
|
#11
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
Vergib mal ein paar Aliase und benutzt diese auch in den Spaltennamen... muss leider weg. Sonst wäre es detailierter geworden
Gruss
Jan
|
|
|
30.11.2004, 17:33
|
#12
|
|
TP-Specialist
Registriert seit: Apr 2002
Ort: 743, evergreen terrace
|
na klasse ... laesst mich ratloser zurueck, als ich vorher war und geht. so wird das nix mit uns 
|
|
|
30.11.2004, 21:32
|
#13
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
...eehhh wollte mich gerade an deinen Query machen und sehe, dass du da so eine Art Union-Select machen willst... ist das Richtig? Dein Query würde so wie er jetzt ist 2 Resultsets liefern = unmöglich mit einem mysql_query() abzufragen. (evtl. mit dieser neuen mysqli?)
Hier mal ein gaanz simples Beispiel um Datenbankübergreifend zu Joinen:
Code:
SELECT tbl1.name, tbl2.testfeld
FROM datenbank1.tabellennameA tbl1
LEFT JOIN datenbank2.tabellennameB tbl2 ON tbl1.user_id = tbl2.user_id
Das ganze kann man natürlich auch ohne Aliase (schreibt man das so?) machen...
@UNION-SELECT: http://dev.mysql.com/doc/mysql/de/UNION.html
Gruss
Jan
|
|
|
30.11.2004, 22:13
|
#14
|
|
TP-Specialist
Registriert seit: Apr 2002
Ort: 743, evergreen terrace
|
hab erstmal vielen dank!
ich werd mir das ganze mal in ruhe ansehen. aber wie du weisst quaehlt mich erstmal ein anderes problem etwas mehr.
hardy
|
|
|
01.12.2004, 00:57
|
#15
|
|
TP-Supporter
Registriert seit: Apr 2001
|
Zitat:
|
Zitat von Stuck Mojo
Hallihallo!
Theoretisch  kann man den Namen der Tabellen einfach mit einem Prefix der jeweiligen Datenbank versehen: dbname.tabelle.feld
Hab das aber noch nie gebraucht, daher nur Theoretisch
Gruss
Jan
|
Mit der Theorie liegst Du glaube ich nicht so falsch.
Ich kann z.B. eine Verbindung über 2 Datenbanken im ASP-Script herstellen, wo ich die unterschiedlichen Pfade zur Datenbank in Variablen speichere, diese dann halt vor die entspr. Tabelle setze. Dies läuft allerdings nur über den Pfad zur Datenbank.
Ich nutze in ASP solche Verbindungen unterschiedlicher Datenbanken eigentlich sehr häufig und verbinde sie untereinander. z.B. habe ich Datenbanken, wo nur wenig an Daten verändert wird und andere, wo ständig Betrieb ist.
In MySQL und php habe ich solche Konstrukte allerdings auch noch nicht realisieren können.
Code:
seminarDB = Server.MapPath(".") & ("\..\_Database\seminar.mdb") & ";"
pubDB = Server.MapPath(".") & ("\..\_Database\pub.mdb") & ";"
sql = "SELECT seminar.[KursID] as ID, seminar.themen as Thema, 's' as Zuordnung, "
sql = sql & "seminar.kurztext as Ausgabe, seminar.bildungspunkte as Zusatz "
sql = sql & "FROM " & seminarDB & ".seminar "
sql = sql & "where seminar.beginn>=Date() and seminar.themen like '%" & gesamtsuche & "%' "
sql = sql & "Union "
sql = sql & "SELECT dokumente.dokID as ID, dokumente.dokumente_ueber as Thema, 'd' as Zuordnung, "
sql = sql & "dokumente.doc_inhalt as Ausgabe, dokumente.autor as Zusatz "
sql = sql & "FROM " & pubDB & ".dokumente "
sql = sql & "where dokumente.seminarbericht=true and dokumente.beschreibung like '%" & gesamtsuche & "%' "
sql = sql & "order by Thema DESC"
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open SQL, objConn,3,3
....
Ich weiss jetzt nicht, wie es bei der neuen mySQL-Version ist, aber ich weiss bei Access, dass bei einer Union-Anweisung die Feldbezeichnungen der Tabellen übereinstimmen müssen (wenn dies nicht der Fall ist, sollten Aliase verwendet werden, habe ich auch oben gemacht) ist aber hier schon geschrieben worden.
Ohne Union-Möglichkeit und ohne, dass die Tabellen eine Beziehung zueinander haben, wirst Du kaum über eine Connection mehrere Tabellen in einem Statement ausgeben können.
__________________
Liebe Grüße, die Judi!
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 07:49 Uhr.
|
 |