---
title: "SQL fråga - Visa senaste raderna med ett visst värde."
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/184569-sql-fråga-visa-senaste-raderna-med-ett-visst-värde"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Gisslen"
published: "2010-09-08T14:53:45.000Z"
updated: "2010-09-08T18:35:00.000Z"
replies: 4
views: 967
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/184569-sql-fråga-visa-senaste-raderna-med-ett-visst-värde"
---

# SQL fråga - Visa senaste raderna med ett visst värde.

## #1 — Gisslen, 2010-09-08T14:53Z

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.

Ex.
Tabell GAME
GameID   TeamID   Opponent   Date
   1             1       Sundsvall   2010-08-01
   2             1       Hernösand  2010-08-07
   3             2       Sundsvall   2010-08-06
   4             3       Hernösand  2010-08-05
   5             1       Timrå        2010-08-10

Önskat resultat
GameID   TeamID   Opponent   Date
   5             1       Timrå        2010-08-10
   3             2       Sundsvall   2010-08-06
   4             3       Hernösand  2010-08-05

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?

Permalänk: https://www.webforum.nu/p/184569

## #2 — LarsG, 2010-09-08T15:25Z

```
select GameID,
       TeamID,
       Opponent,
       Date
  from game
 where gameid = 
    (select max(gameid)
         from game as g
        where g.teamid = game.teamid)
 order by date desc
```

Permalänk: https://www.webforum.nu/p/2250710

## #3 — Gisslen, 2010-09-08T16:55Z

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 :)

Permalänk: https://www.webforum.nu/p/2250713

## #4 — LarsG, 2010-09-08T18:01Z

```
select GameID,
       TeamID,
       Opponent,
       Date
  from game
 where date = 
    (select max(date)
         from game as g
        where g.teamid = game.teamid)
 order by date desc
```

Jag använde gameid för att undvika att få flera poster om ett lag hade flera matcher på samma datum. Det kanske inte är något problem.

Permalänk: https://www.webforum.nu/p/2250719

## #5 — Gisslen, 2010-09-08T18:35Z

Tack! Nu funkar det bra.

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.

Permalänk: https://www.webforum.nu/p/2250722

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/184569-sql-fråga-visa-senaste-raderna-med-ett-visst-värde
