Summe von Tabelle auswerten

madridista

Neuer Benutzer
Beiträge
3
Hallo zusammen

Ich habe eine Datenbank erstellt, in welcher ich jedes Premier League Team erstellt habe un einen Spielplan erstellt habe. Ich habe jedem Team eine Stärke als Heimteam und eine unterschiedliche Stärke als Auswärtsteam vergeben. Nun möchte ich auslesen, welche Teams in einem spezifischen Zeitraum die stärksten Gegner hat.

Es ist wie folgt aufgebaut:
tbl_awayteam:
AwayteamID (int(3) , Primary Key)
Awayteam (varchar)
Awayteam_Strength (int(3))

tbl_hometeam:
HometeamID (int(3), Primary Key)
Hometeam (varchar)
Hometeam_Strength (int(3))

tbl_fixtures:
FixturesID (int(4), Primary Key)
fk_homteamID (int(3), Foreign Key)
fk_awayteamID (int(3), Foreign Key)
Gameweek (int(3))

Kann mir jemand sagen, wie ich nun beispielsweise auslesen kann, wer zwischen der Gameweek (Spieltag) 1 bis 5 der einfachste Gegner hat? Jeder Gameweek sind zehn FixtureIDs zugewiesen, womit ich mit folgendem Befehl den Spieltag auslesen kann:
SELECT tbl_fixtures.FixturesID, tbl_hometeam.Hometeam, tbl_awayteam.Awayteam
FROM tbl_fixtures
JOIN tbl_hometeam ON tbl_fixtures.fk_hometeamID
JOIN tbl_awayteam ON tbl_fixtures.fk_awayteam ID
WHERE tbl_fixtures.Gameweek = (beliebige Zahl zwischen 1 und 38)

Besten Dank für die Unterstützung.
 
Werbung:
Du hast also für jede Manschaft je einen Eintrag in tbl_awayteam und tbl_hometeam, wo die zweite Spalte dann immer denselben Namen (Name des Teams) hat? Fail.
 
Du hast also für jede Manschaft je einen Eintrag in tbl_awayteam und tbl_hometeam, wo die zweite Spalte dann immer denselben Namen (Name des Teams) hat? Fail.
Ja, ich bin relativ neu in der Datenbankwelt. Werde dies sicher noch anpassen mit einer einheitlichen Tabelle mit allen Teams. Nichtsdestotrotz wäre ich um Unterstützung bei der Auslesung der Stärke sehr dankbar.
 
wenn ich Dich richtig verstanden habe ...

Code:
test=*# \d teams;
                            Table "public.teams"
 Column |  Type   | Collation | Nullable |              Default             
--------+---------+-----------+----------+-----------------------------------
 id     | integer |           | not null | nextval('teams_id_seq'::regclass)
 name   | text    |           |          |
 a_s    | integer |           |          |
 h_s    | integer |           |          |
Indexes:
    "teams_pkey" PRIMARY KEY, btree (id)
Referenced by:
    TABLE "games" CONSTRAINT "games_fk_away_fkey" FOREIGN KEY (fk_away) REFERENCES teams(id)
    TABLE "games" CONSTRAINT "games_fk_home_fkey" FOREIGN KEY (fk_home) REFERENCES teams(id)

test=*# \d games
                               Table "public.games"
 Column  |  Type   | Collation | Nullable |                Default                 
---------+---------+-----------+----------+----------------------------------------
 game_id | integer |           | not null | nextval('games_game_id_seq'::regclass)
 week    | integer |           |          |
 fk_home | integer |           |          |
 fk_away | integer |           |          |
Indexes:
    "games_pkey" PRIMARY KEY, btree (game_id)
Check constraints:
    "games_week_check" CHECK (week >= 1 AND week <= 38)
Foreign-key constraints:
    "games_fk_away_fkey" FOREIGN KEY (fk_away) REFERENCES teams(id)
    "games_fk_home_fkey" FOREIGN KEY (fk_home) REFERENCES teams(id)

test=*# select h.id, sum(a.a_s) from games g left join teams h on g.fk_home=h.id left join teams a on g.fk_away=a.id group by h.id order by sum desc limit 3;
 id | sum
----+-----
(0 rows)

test=*#

ich hab da jetzt keinerlei Daten drin, daher leeres Resultat.
 
Werbung:
wenn ich Dich richtig verstanden habe ...

Code:
test=*# \d teams;
                            Table "public.teams"
 Column |  Type   | Collation | Nullable |              Default            
--------+---------+-----------+----------+-----------------------------------
 id     | integer |           | not null | nextval('teams_id_seq'::regclass)
 name   | text    |           |          |
 a_s    | integer |           |          |
 h_s    | integer |           |          |
Indexes:
    "teams_pkey" PRIMARY KEY, btree (id)
Referenced by:
    TABLE "games" CONSTRAINT "games_fk_away_fkey" FOREIGN KEY (fk_away) REFERENCES teams(id)
    TABLE "games" CONSTRAINT "games_fk_home_fkey" FOREIGN KEY (fk_home) REFERENCES teams(id)

test=*# \d games
                               Table "public.games"
 Column  |  Type   | Collation | Nullable |                Default                
---------+---------+-----------+----------+----------------------------------------
 game_id | integer |           | not null | nextval('games_game_id_seq'::regclass)
 week    | integer |           |          |
 fk_home | integer |           |          |
 fk_away | integer |           |          |
Indexes:
    "games_pkey" PRIMARY KEY, btree (game_id)
Check constraints:
    "games_week_check" CHECK (week >= 1 AND week <= 38)
Foreign-key constraints:
    "games_fk_away_fkey" FOREIGN KEY (fk_away) REFERENCES teams(id)
    "games_fk_home_fkey" FOREIGN KEY (fk_home) REFERENCES teams(id)

test=*# select h.id, sum(a.a_s) from games g left join teams h on g.fk_home=h.id left join teams a on g.fk_away=a.id group by h.id order by sum desc limit 3;
 id | sum
----+-----
(0 rows)

test=*#

ich hab da jetzt keinerlei Daten drin, daher leeres Resultat.
Besten Dank für deine Hilfe! Werde mir dies mal anschauen und versuchen zu verstehen :)
 
Zurück
Oben