Probleme mit Formulierung einer SQL-Abfrage



  • Ich habe folgende Tabellen:

    Table_Team
    Unsigned Int TeamID (Primary Key)
    Text TeamString (Name des Teams)
    Text TeamInfo (Beschreinung zum Team)

    Table_Game
    Unsigned Int GameID (Primary Key)
    Unsigned Int Team1ID (Mannschaft 1)
    Unsigned Int Team2ID (Mannschaft 2)
    TinyInt PunkteTeam1
    TinyInt PunkteTeam2

    So nun möchte ich eine Select Abfrage gestalten, welche mir als Ergebnis alle Spieldaten mit Mannschaftsnamen liefert an denen eine bestimmte Mannschaft (TeamID) teilgenommen hat.

    Das habe ich so probiert, da fehlt dann allerdings der Mannschaftsbname des Gegners noch, den ich aber brauche.

    SELECT * FROM Table_Team, Table_GAME WHERE Table_Team.TeamID=Table_Game.Team1ID OR Table_Team.TeamID=Table_Game.Team2ID AND Table_Team.TeamID=3



  • SELECT Table_Team.*,Table_GAME.* FROM Table_Team, Table_GAME where
    

    Solltest aber nur die Felder auswählen die du brauchst und nicht alle (*)



  • Also, wenn ich die Abfrage so abändere kommt genau das gleich raus. Er leifert immer nur den namen zum Team nach dem gesucht wird und das Gegnerteam nicht.



  • Setze

    Table_Team.TeamID=Table_Game.Team1ID OR Table_Team.TeamID=Table_Game.Team2ID

    in Klammern

    Deine OR schlißt für die erste where AND Table_Team.TeamID=3 aus

    Also

    SELECT Table_Team.*,Table_GAME.*  FROM Table_Team, Table_GAME WHERE (Table_Team.TeamID=Table_Game.Team1ID OR Table_Team.TeamID=Table_Game.Team2ID) AND Table_Team.TeamID=3
    


  • Sollte eigentlich so gehen:

    SELECT t1.*,t2.*, g.*
    FROM Table_Team t1,
         Table_Team t2,
         Table_GAME g
    WHERE g.team1id = t1.teamid
    AND   g.team2id = t2.teamid
    


  • Danke für die Tips jetzt geht alles.


Anmelden zum Antworten