Jag håller på med den hemsida som hämtar information från en MySQL-databas. Nu har jag problem att få till en SQL-query. Jag får till det med flera queries, men vill helst bara behöva använda en.
Tabellen GAME ser ut så här.
GameID
TeamID
Opponent
Date
Det är alltså en tabell med olika lags matcher, deras motståndare och vilket datum matchen är.
Det finns 3 olika lag (GameID), och varje lag har spelat flera matcher olika datum.
Nu vill jag få fram en tabell där varje lags(TeamID) senaste match visas. Tabellen ska sorteras efter TeamID.
Lite svårt att visa bra tabeller här, man jag hoppas att ni förstår.
Jag har jobbat med det här i flera timmar nu, men kan inte få till det. Tycker att det inte borde vara så svårt. Finns det någon här som är bra på SQL och vet hur jag ska göra?
Tack för svar, LarsG!
Det börjar närma sig. Misstänkte att det var en nested query som gällde, men fick inte alls till det själv.
Din kod fungerar bra, men det blir en liten bugg. Om jag lägger in en ny match i tabellen med ett datum som är längre tillbaka i tiden än den senaste matchen, så kommer den att visas istället.
Det blir alltså inte de senaste matcherna utifrån datum som visas, utan de senaste inlagda matcherna i tabellen.
Bör inte vara några större ändringar som behöver göras. Sitter och filar på en lösning. Lägger in den här om jag lyckas, men jag tar gärna mot mer hjälp :)
Jag lyckades få till något liknande med en lite annorlunda query. Men din kanske är effektivare.
Jag använde denna nästlade query:
GameID = (SELECT GameID
FROM game as g
WHERE g.TeamID = game.TeamID
ORDER BY Date DESC
LIMIT 1)
Men din med max(Date) istället för ORDER BY Date och en LIMIT kanske är bättre som sagt...
Hur som helst. Jag är ytterst tacksam LarsG. Skönt att slippa slita sig i håret ännu mer. :birp
EDIT:
Det är sällan ett lag spelar två matcher på samma dag, så det spelar ingen roll hur det blir då.
EDIT 2:
Jo, det spelade visst roll. :r
Märkte att om ett lag har spelat två matcher på samma dag så visas båda matcherna. Hade bara ena visats, oavsett vilken, hade det inte spelat så stor roll. Men om båda visas så blir det fel på layouten på hemsidan. Med min inre query så blir det bara en p.g.a. limiten. Så jag kör på den.
253 ms totalt · 4 externa anrop · v20260731065814-full.bd618308