webForumDet fria alternativet

Hämta data före och efter ett visst datum

4 svar · 262 visningar · startad av GrodanBoll

GrodanBollMedlem sedan sep. 2001788 inlägg
#1

Hej hej :)

Jag har en tabell med matcher och en tabell med lag

# tbllag
lagId
lagAktiv [1 om aktivt, 0 om inaktivt]

# tblmatcher
matchId
matchDatum
lagId

Jag skulle vilja få fram den senast spelade och närmaste nästa match för varje lag som är aktivt.

Kan man det i en sats? Om så hur gör man?

LarsGMedlem sedan dec. 200012 464 inlägg
#2
select l.lagid,matchdatum
 from tbllag l inner join tblMatcher m on l.lagid = m.lagid
where matchdatum = (select max(matchdatum)
from tblmatcher 
where lagid = m.lagid
where matchdatum < current_date)
or matchdatum = (select max(matchdatum)
from tblmatcher 
where lagid = m.lagid
where matchdatum >= current_date)
GrodanBollMedlem sedan sep. 2001788 inlägg
#3

Tack för svaret, men teflonminne som jag har så glömde jag att skriva att jag kör mySql 3.23. Den stödjer ju inte subfrågor.

Kan man ha en sådan tur att det finns en alternativ sql-fråga som klarar av det?

Sry för missen igen. :r

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Om man hämtar lag med en separat fråga så får man för varje lag göra frågorna

select * from tblMatcher
where lagid = $lagid
and matchdatum > current_date
order by matchdatum asc
limit 1

select * from tblMatcher
where lagid = $lagid
and matchdatum <= current_date
order by matchdatum desc
limit 1

Jag ser inget bättre alternativ. (Det finns ju andra bättre dbms som också är gratis .... )

GrodanBollMedlem sedan sep. 2001788 inlägg
#5

Ok, tackar för svaret, även om det inte var det jag ville höra. ;)

Tyvärr hänger det inte på mig även om jag vill uppdatera eller byta.

126 ms totalt · 3 externa anrop · v20260731065814-full.beb2e261
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)