Ankündigung

Einklappen
Keine Ankündigung bisher.

MySQL 3 Tabellen abfrage

Einklappen

Neue Werbung 2019

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

  • MySQL 3 Tabellen abfrage

    Hallo,
    ich habe ein Problem, ich habe 3 Tabellen teams, spieler, wertung.
    Mein Wunsch ist nun, eine Übersichtseite des Teams auszugeben, welches die Daten aus den tabellen vereint.
    Mein Problem liegt 1. in der Wahl der JOIN-Art, und in dem Problem, das mehrere Spieler zu dem einen Team-Eintrag gehören.

    Tabellenübersicht:


    Code:
    **Teams**
    ----------------------------------------------------
    id.....teamname.....playedgames....wingames....
    ----------------------------------------------------
    1......MeinTeam.....10..................5 
    
    
    **Spieler**
    --------------------------
    id.....teamid.....playername
    --------------------------
    1......1............Frank
    2......1............Otto
    3......1............Manfred
    4......1............Stefan
    5......1............Karl
    6......1............Torsten
    
    
    **Wertung**
    ----------------------------------------------------
    id.....playerpoints....
    ----------------------------------------------------
    1......20
    2......13
    3......15
    4......19
    5......21
    6......9
    Auf der Ausgabeseite soll nun stehen:

    Team: MeinTeam
    Gespielte Spiele: 10
    Gewonnene Spiele: 5
    Spieler 1: Frank (20)
    Spieler 2: Otto (13)
    Spieler 3: Manfred (15)
    Spieler 4: Stefan (19)
    Spieler 5: Karl (21)
    Spieler 6: Torsten (9)

    Wie ist das am Besten zu realisieren?
    Könnt ihr mir einen Ansatz geben?
    Ich weiß zwar wie ich den normalen INNER JOIN darauf anwende, allerdings fehlt mir da das Verständnis, zu meinem Haupteintrag "Team" mehrere Einzeldatensätze "Spieler" zu suchen und dann zu jedem Spieler noch die zugehörige Wertung.
    Und Abfragen in Abfragen habe ich gehört soll doof sein.

    Vielen Dank euch im Voraus

  • #2
    Mach 2 Abfragen, eine für das Team und eine für die Spieler. Bei letzterer machst du einen Join zwischen den Spielern und den Spielerpunkten. Alle 3 Tabellen in einer Abfrage abzufragen macht keinen Sinn.

    Kommentar


    • #3
      Ok, du hast recht, das macht Sinn.
      Nun habe ich jedoch ein zweites Problem. Es bleiben wie ich nun sehe 3 Tabellen:


      Code:
      **Spieler** 
      ------------------
      teamid.....playerid
      ------------------
      1............1
      1............2
      1............3
      1............4
      1............5
      1............6
      
      **Namen** 
      ------------------
      playerid....playername
      ------------------
      1............Frank
      2............Otto
      3............Manfred
      4............Stefan
      5............Karl
      6............Torsten
      
      **Wertung** 
      -----------------
      playerid.....playerpoints
      -----------------
      1.............20 
      2.............13 
      3.............15 
      4.............19 
      5.............21 
      6.............9
      Als Ausgangspunkt habe ich leider nur die TeamID,
      wie bekomme ich jetzt daraus den Namen und die Wertung heraus?

      Spieler 1: Frank (20)
      Spieler 2: Otto (13)
      Spieler 3: Manfred (15)
      Spieler 4: Stefan (19)
      Spieler 5: Karl (21)
      Spieler 6: Torsten (9)

      Ansatz:
      Code:
      SELECT 
          m.teamid, m.playerid, s.wertung, s.playerid, c.playerid, c.name
      FROM 
          spieler m
      INNER JOIN 
           namen s ON m.spielerid = s.spielerid
      INNER JOIN 
          wertung c ON m.spielerid = c.spielerid
      WHERE 
          m.teamid = ".$team_id."
      Hoffe hier kann mir auch jemand so gut helfen
      Ich weiß, die Tabellenstruktur hätte man im Vorfeld taktisch klüger gestalten können, auf diese habe ich nun jedoch keinen Einfluss mehr ...
      Vielen Dank im Voraus.

      Kommentar

      Lädt...
      X