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?

  • nikosch
    antwortet
    Die Tabellennamen und die Join-Prefixes

    Einen Kommentar schreiben:


  • PhillKill12
    antwortet
    Doch.
    was passt nicht, sehs iwie grad net ..? ^^

    Einen Kommentar schreiben:


  • nikosch
    antwortet
    ich hoff ich hab mich da jetzt net verdacht oder verschrieben ... ^^
    Doch.

    Einen Kommentar schreiben:


  • PhillKill12
    antwortet
    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 ... ^^

    Einen Kommentar schreiben:


  • WoHinDu
    antwortet
    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!

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    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

    Einen Kommentar schreiben:

Lädt...
X