Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] MySQL "Unterabfrage"

Einklappen

Neue Werbung 2019

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

  • thirdgotti
    hat ein Thema erstellt [Erledigt] MySQL "Unterabfrage".

    [Erledigt] MySQL "Unterabfrage"

    Ich habe 2 MySQL Datentabellen. Ich möchte nun aus beiden Tabellen Daten erhalten.

    Ich weiß, wie man Tabellen abfragt.
    Ich weiß, das man das mit JOIN macht.

    Ich weiß nicht, wie man es in diesen Fall anstellen soll.

    Hat jemand einen Lösungsansatz?

    Hier das Beispiel:

    Code:
    MySQL Tabelle Spedition
    
    +--------------+------+
    | Spedition_ID | Name |
    +--------------+------+
    |      1       | UPS  |
    +--------------+------+
    |      2       | DPD  |
    +--------------+------+
    |      3       | DHL  |
    +--------------+------+
           |
           +--------------------------+-----------------------+
                                      |                       |
                                      |                       |
    MySQL Tabelle Benutzer            |                       |
                                     \|/                     \|/
    +--------------+--------+----------------------+--------------------------+
    | Benutzer_ID  | Name   | Spedition_ID_Retoure | Spedition_ID_Anlieferung |
    +--------------+--------+----------------------+--------------------------+
    |      1       | Meier  |        1             |         1                |
    +--------------+--------+----------------------+--------------------------+
    |      2       | Müller |        3             |         2                |
    +--------------+--------+----------------------+--------------------------+
    |      3       | Schulz |        2             |         1                |
    +--------------+--------+----------------------+--------------------------+
    so soll nach der Abfrage die auszugebende Tabelle aussehen

    Code:
    +--------+-------------------+-----------------------+
    | Name   | Spedition Retoure | Spedition Anlieferung |
    +--------+-------------------+-----------------------+
    | Meier  |       UPS         |         UPS           |
    +--------+-------------------+-----------------------+
    | Müller |       DHL         |         DPD           |
    +--------+-------------------+-----------------------+
    | Schulz |       DPD         |         UPS           |
    +--------+-------------------+-----------------------+

  • thirdgotti
    antwortet
    Habe es hinbekommen.

    Danke!

    Einen Kommentar schreiben:


  • Asipak
    antwortet
    Code:
    [...]
    join spedition sped_r on sped_r.Spedition_ID = benutzer.spedition_id_retoure
    join spedition sped_a on sped_a.Spedition_ID = benutzer.spedition_id_anlieferung
    Es geht um die sogenannten Alias, die Durin dir nahelegen wollte. In dem Beispiel redest du im Grunde 2 mal mit derselben Tabelle (spedition), um einmal die Spedition für die Anlieferung und einmal die Spedition für die Retoure auszulesen. Du quatscht sie nur jeweils mit anderen Namen, in diesem Fall mit sped_a und sped_r, an.

    Einen Kommentar schreiben:


  • thirdgotti
    antwortet
    Kann mich mal jemand von der Leitung holen?
    Peile gerade gar nichts....

    Einen Kommentar schreiben:


  • Durin
    antwortet
    Zitat von akretschmer Beitrag anzeigen
    Und damit man das nicht verbuchselt, gibt man da einen Namen bzw. einen Alias. That's all.
    http://www.peterkropff.de/site/mysql/alias.htm

    Einen Kommentar schreiben:


  • thirdgotti
    antwortet
    Ja, könnte doch aber nur folgendes abfragen:
    Code:
    select spedition.name as spedition_retoure, spedition.name as spedition_anlieferung,
    weil es gibt ja nur eine Tabelle "Spedition" und nicht eine Tabelle "Spedition Anlieferung" und eine Tabelle "Spedition Retoure"

    Einen Kommentar schreiben:


  • akretschmer
    antwortet
    Zitat von thirdgotti Beitrag anzeigen
    Ich habe aber nur eine Tabelle "Spedition".
    Genau. Die joinst Du. Weil aus der willst Du ja was haben. Und zwar 2 Informationen je Datensatz, also 2 mal joinen. Und damit man das nicht verbuchselt, gibt man da einen Namen bzw. einen Alias. That's all.

    Einen Kommentar schreiben:


  • Durin
    antwortet
    Ja und, deswegen kannst du trotzdem zwei joins machen?

    Einen Kommentar schreiben:


  • thirdgotti
    antwortet
    select benutzer.name, sped_r.name as spedition_retoure, sped_a.name as spedition_anlieferung
    Ich habe aber nur eine Tabelle "Spedition".

    Einen Kommentar schreiben:


  • Durin
    antwortet
    Mit join fragst du keine Tabellen ab, sondern "verbindest" sie.

    Code:
    select benutzer.name, sped_r.name as spedition_retoure, sped_a.name as spedition_anlieferung
    from benutzer
    join spedition sped_r on sped_r = benutzer.spedition_id_retoure
    join spedition sped_a on sped_a = benutzer.spedition_id_anlieferung

    Einen Kommentar schreiben:

Lädt...
X