Ankündigung

Einklappen
Keine Ankündigung bisher.

2 Tabellen gleichzeitig abfragen (evtl. virtuell verbinden) Updated!

Einklappen

Neue Werbung 2019

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

  • 2 Tabellen gleichzeitig abfragen (evtl. virtuell verbinden) Updated!

    Hallo,
    ich hab folgendes Problem.
    Ich hab 2 Tabellen. Tabelle eins enthält unteranderem die Spalten
    "von" und "nach" und "user_id" Tabelle 2 enthält unteranderem die Spalten "code", "nord" und "ost".
    Um das mal praktisch zu veranschaulichen.
    In Tabelle 1 steht in der Spalte "von" Frankfurt und in der Spalte "nach" München. In der Tabelle 2 steht in der Spalte "code" München und in der Spalte "nord" und "ost" die dazugehörigen Koordinaten.
    Jetzt würde ich gerne aus der 2. Tabelle alle eintrage mit einer bestimmten userid ausgeben. Ist auch garkein Problem.
    PHP-Code:
    $db->query("SELECT * FROM tabelle1 WHERE user_id={$my->id}"); 
    Aber zusätzlich brauche ich jetzt zu den Spalten "von" und "nach" die Spalten "nord" und "ost" aus der Tabelle 2.
    Also, ich will im Endeffekt die Nord und Ost Koordinaten von z.b. Frankfurt und München ausgeben.
    Wie Mache ich das am besten. Von "inner" etc. hab ich leider keine Ahnung. Vorallem weis ich garnicht ob das für meinen Zweck hier überhaupt das richtige ist. Wenn mir da jemand mal kurz erklären könnte wie das funktioniert, was ich dafür verwenden muss etc. währe ich euch sehr verbunden.

    Edit://
    Ich bin jetzt ein Stück weiter gekommen. Und zwar folgendes query:
    PHP-Code:
    $db->query("SELECT von, nord, ost FROM Tabell1, Tabelle2 WHERE Tabelle1.von = Tabelle2.code AND user_id={$my->id}"); 
    Da klappt es so wie ich es will. Aber ich brauch das ganze noch für die Spalte "nach":
    PHP-Code:
    $db->query("SELECT nach, nord, ost FROM Tabell1, Tabelle2 WHERE Tabelle1.nach = Tabelle2.code AND user_id={$my->id}"
    Aber jetzt habe ich 2 Querys was ich so nicht wollte, darum folgende frage, wie verbinde ich beide Querys?


  • #2
    Fällt mir folgendes dazu ein, wobei mir nicht klar ist, was Du mit den Daten machst...

    Code:
    $db->query("
    SELECT von, NULL AS nach, nord, ost 
      FROM Tabell1, Tabelle2 
     WHERE Tabelle1.von = Tabelle2.code 
       AND user_id={$my->id}
    
    UNION ALL
       
    SELECT NULL AS von, nach, nord, ost 
      FROM Tabell1, Tabelle2 
     WHERE Tabelle1.nach = Tabelle2.code 
       AND user_id={$my->id}
    ")
    Mit Hilfe des UNION ALL werden die beiden Abfragen zusammen ausgeführt und die zwei Ergebnismengen aneinander gehängt. Damit das auch mit den unterschiedlichen Spalten funktioniert, habe ich jeweils eine dummy-spalte (NULL) für die jeweils fehlende Spalte hinzugefügt.

    Grüße
    Thomas

    Kommentar


    • #3
      Hi,
      vielen Dank schonmal dafür!
      Die Daten kommen in eine XML Datei, diese dann von Google Maps ausgelesen wird.
      Leider versteh ich die Abfrage nicht so ganz. Für was ist die Dummy Spalte und wie greife ich auf die Daten zu.
      Das Query lässt sich soweit wunderbar ohne Fehlermeldungen ausführen, aber leider schaffe ich es nicht auf die Daten aus der 2. SELECT Anweisung zuzugreifen.
      Tut mir leid, das meine fragen so dumm sein mögen!

      Kommentar


      • #4
        also ich würde das per JOIN machen :
        PHP-Code:
        SELECT 
           nach

           
        nord
           
        ost 
        FROM 
           Tabell1
        JOIN 
           Tabell2
        ON
           Tabelle1
        .nach Tabelle2.code 
        WHERE 
           user_id
        ={$my->id
        ich hoff ich hab mich da jetzt net verdacht oder verschrieben ... ^^
        PHP-Code:
        if ( $humans >= ) {
           
        war ();

        Kommentar


        • #5
          ich hoff ich hab mich da jetzt net verdacht oder verschrieben ... ^^
          Doch.
          --

          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
          Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


          --

          Kommentar


          • #6
            Doch.
            was passt nicht, sehs iwie grad net ..? ^^
            PHP-Code:
            if ( $humans >= ) {
               
            war ();

            Kommentar


            • #7
              Die Tabellennamen und die Join-Prefixes
              --

              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
              Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


              --

              Kommentar

              Lädt...
              X