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

  • Change
    hat ein Thema erstellt MySQL 3 Tabellen abfrage.

    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

  • Change
    antwortet
    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.

    Einen Kommentar schreiben:


  • Frank
    antwortet
    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.

    Einen Kommentar schreiben:

Lädt...
X