Zwei Datenbanken verbinden.. PHP, aber bitte kurzen Tipp...
Alex
- datenbank
Guten Abend ,
Brauche mal eine "vielleicht sogar einen kräftigen" Denkanstoß von euch, bzw. einen Tipp wo ich mich ordentlich einlesen kann.
Habe schon versucht was hier im Forum zu finden, aber hab leider nichts gefunden..
Möchte zwei Datenbanken verbinden... und zwar so:
Datenbank A:
Sind z.B. Kunden (Name, Adresse usw. usw.)
... Diese möchte ich mit einer Notiz-DB verbinden, so daß ich gesprächsnotizen an den Kunden X verbinden kann...
Zusammenhängen sollte dies dann über z.B. Kundennr....
Datenbank B: (Notizen)
Kundennr., Datum (wann erstellt) und Text...
Mir ist die Verbindung überhaupt nicht klar, -und weis auch gar nicht wie ich da jetzt ansetzen soll...
Alex
...Danke
Hallo!
Möchte zwei Datenbanken verbinden... und zwar so:
Ich denke mal Du meinst zwei Tabellen.
Datenbank A:
Sind z.B. Kunden (Name, Adresse usw. usw.)... Diese möchte ich mit einer Notiz-DB verbinden, so daß ich gesprächsnotizen an den Kunden X verbinden kann...
Zusammenhängen sollte dies dann über z.B. Kundennr....Datenbank B: (Notizen)
Kundennr., Datum (wann erstellt) und Text...
// Kunde -> kunde
kid name
1 abc
2 def
// Notiz -> notiz
nid kid text
1 2 blabla
2 2 blubblub
3 1 ugauga
Das ganze kann man jetzt über ein JOIN verbinden.
SELECT notiz.text FROM kunde INNER JOIN notiz (kunde.kid=notiz.kid) WHERE kunde.kid=2;
So bekommst Du alle Notizen des Kunden mit der kid gleich 2. Es gibt verschiedene JOIN. Man kann das noch kürzer mit Aliase schreiben.
Das wird Dir aber ein MySQL-Buch oder die MySQL-Doku http://www.mysql.de/doc/de/index.html sagen wie das geht.
MfG, André Laugks
Kleiner Fehler! Da Fehlt ein ON!
SELECT notiz.text FROM kunde INNER JOIN notiz (kunde.kid=notiz.kid) WHERE kunde.kid=2;
SELECT notiz.text FROM kunde INNER JOIN notiz ON (kunde.kid=notiz.kid) WHERE kunde.kid=2;
MfG, André Laugks
Halihallo Alex
[...]
Wäre es nicht wahrscheinlich, dass deine Problemstellung von einem gewissen System
abhängig sein könnte? - Wenn du diese Frage mit Ja beantwortest und das solltest du,
dann nenn dein DBMS!
Zudem der kleine Hinweis, dass die "Datenbank" eine in sich geschlossene "Miniwelt"
darstellt, welche völlig autark und fernab von anderen Datenbanken funktionieren soll
und dein Vorhaben alles andere als "normal" ist. Aber evtl. gibt's bei gewissen Systemen
die Möglichkeit dein kurrioses Vorhaben umzusetzen.
Viele Grüsse
Philipp
Guten Abend ,
...snip...
Möchte zwei Datenbanken verbinden... und zwar so:
Datenbank A:
Sind z.B. Kunden (Name, Adresse usw. usw.)
...snip...
Datenbank B: (Notizen)
Kundennr., Datum (wann erstellt) und Text...
...snip...
Also, das ist eigentlich ganz einfach:
Wichtig bei der ganzen sache ist, dass du midestens einen eindeutigen Index in den beiden Tabellen hast:
Tabelle 1:
Kundennummer, Name, Adresse, ...
Tabelle 2:
Kundennummer, Datum, Text, ...
So, jetzt ist es möglich, die beiden im Select leicht zu verknüpfen:
Select t1.Kundennummer,t1.Name,t1.Adresse,t2.Datum,t2.Text from Tabelle1 t1, Tabelle2 t2 where t1.Kundennummer=t2.Kundennummer
Wichtig hierbei ist es anzugeben, welche Spalte (Name) aus welcher Tabelle (t1) genommen wird. Die "Where"-Kriterien kannst du wählen wie du willst, dieser sucht alle zusammengehörigen Einträge, hängst Du "and t1.Kundennummer='002314'" mit hinten an, sucht der Select nur den einen Kunden mit dieser Nummer...
Ciao, Marc
Halihallo Kingmac2104
Also, das ist eigentlich ganz einfach:
Zwei Tabellen, ja. Zwei Datenbanken, depends... Aber vielleicht hat Alex das ja
schon immer gemeint.
Wichtig bei der ganzen sache ist, dass du midestens einen eindeutigen Index in den beiden Tabellen hast:
Alles richtig und gute Einführung, was du sagst, aber das ist komplett falsch. Weder
braucht es einen eindeutigen Index, noch einen Primary Key (was du wohl damit meintest,
jedoch keineswegs das selbe ist). Indexstrukturen sind dazu gedacht eine Abfrage
performanter auszuführen, sind jedoch nicht Voraussetzung für einen JOIN. Genauso
wenig der Primary Key, der zur eindeutigen Identifikation eines Datensatzes dient, auch
ohne ihn lässt sich ein JOIN durchführen.
So, jetzt ist es möglich, die beiden im Select leicht zu verknüpfen:
Select t1.Kundennummer,t1.Name,t1.Adresse,t2.Datum,t2.Text from Tabelle1 t1, Tabelle2 t2 where t1.Kundennummer=t2.Kundennummer
http://www.mysql.com/doc/de/JOIN.html sei hier genannt. Es gibt noch wesentlich
schönere Methoden einen JOIN zu bilden.
Viele Grüsse
Philipp