[MySQL 4.1] Abfrage über mehrere Tabellen in mehreren Datenbanken

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [MySQL 4.1] Abfrage über mehrere Tabellen in mehreren Datenbanken

    Hallo, ich habe heute schon mehr oder weniger den ganzen Tag gesucht, auch hier im Forum, bin aber nicht so ganz fündig geworden. Ich habe eine Tabelle user und eine Tabelle besitz. Leider sind diese Tabellen in zwei verschiedenen Datenbanken db1 und db2. Damit ich beide Tabellen abfragen kann, habe ich die Usertabelle von db1 in db2 kopiert -> Redundanz und doppelte bzw. mehrfache Datenpflege. Bis jetzt sieht eine Abfrage z. B. so aus:
    $query = "SELECT * FROM `user` RIGHT OUTER JOIN `besitz` ON (`user`.`UserID` = `besitz`.`BesitzUserID`) where Inaktiv=0";
    ...sucht mir die Besitztümer der User raus. Wie schaffe ich das nun diese Abfrage über zwei Datenbanken zu verteilen? Das mit dem connecten zu den zwei Datenbanken wie hier auch schon im Forum gepostet (z. B. http://www.php-resource.de/forum/sho...threadid=21413 oder hier http://www.php-resource.de/forum/sho...threadid=15117 ) habe ich schon versucht, allerdings bekomme ich immer die Fehlermeldung mein result wäre nicht gültig. Nur folgendes funktioniert:
    $query = "select * from user";
    mysql_select_db("db1");
    $result = mysql_query($query);

    funktionieren tut z. B. nicht
    if ($connect){ $db1 ="db1";}
    $query = "select * from user";
    $result = mysql_db_query($db1, $query);

    und auch die Geschichte mit dem link Identifier auf eine Connection will irgendwie nicht klappen. Vielleicht hat ja doch noch jemand eine Idee wie man so eine Mehrtabellenabfrage auf mehreren DBs machen kann. Wäre sehr dankbar.

    Greetz
    Florian

  • #2
    Indem Du bei der Abfrage die Datenbanknamen mit angibst ...
    Code:
    SELECT *
      FROM db1.user u
     RIGHT OUTER JOIN db2.besitz b
        ON u.UserID = b.BesitzUserID
     WHERE Inaktiv=0
    carpe noctem

    [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
    [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

    Kommentar


    • #3
      1. Frage: Wenn die beiden Tabellen zusammengehören,warum sind sie dann nicht in ein und der selben Datenbank?

      wenn du mysql_select_db weglässt und statt select from user einfach mal select from db1.user schreibst, was passiert dann?
      Ich denke, also bin ich. - Einige sind trotzdem...

      Kommentar


      • #4
        das wäre ja einfacher als die Polizei erlaubt, komisch dass ich das nirgendwo finden konnte. Werde es den Abend mal ausprobieren. THX erstmal
        Florian

        Kommentar


        • #5
          man wird hier schnell geantwortet. Die Tabellen gehören zwar zusammen, aber die Usertabelle wird von mehreren Anwendungen genutzt. Das mit db.tabelle probier ich aber mal...das wird wohl hoffentlich funzzen.
          Greetz

          Kommentar


          • #6
            schieb doch (so es nicht gehen sollte) die tabelle mit den "besitztümern" in die andere db
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              Natürlich geht das ... ich hab' 'ne Resourcen-Datenbank die ich in verschiedenen Projekten verwenden ... die kopiere ich auch nicht immer um .. !
              carpe noctem

              [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
              [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

              Kommentar


              • #8
                funktioniert auch, vielen Dank nochmal

                Kommentar

                Lädt...
                X