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

  • [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           |
    +--------+-------------------+-----------------------+


  • #2
    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

    Kommentar


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

      Kommentar


      • #4
        Ja und, deswegen kannst du trotzdem zwei joins machen?

        Kommentar


        • #5
          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.
          PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

          Kommentar


          • #6
            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"

            Kommentar


            • #7
              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

              Kommentar


              • #8
                Kann mich mal jemand von der Leitung holen?
                Peile gerade gar nichts....

                Kommentar


                • #9
                  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.
                  http://hallophp.de

                  Kommentar


                  • #10
                    Habe es hinbekommen.

                    Danke!

                    Kommentar

                    Lädt...
                    X