webForumDet fria alternativet

Ta fram senaste frågan och dess alternativ

Databaser & SQL

3 svar · 183 visningar · startad av Bäckman

Medlem sedan nov. 2001274 inlägg
Frågan#1

Tjenare

Har lite problem med att ta fram den senaste frågan och samtliga alternativ som tillhör den. Som det är nu så lyckas jag bara få fram alla frågor och alternativ om jag inte specificerar ett ID till den specifika fråga man vill ha fram. Skulle som sagt bara vilja ha fram den senaste istället. Trodde det skulle gå med en subquery i slutet, men jag har troligtvis för gammal version av Mysql.

Nedan är tabellerna som jag vill vispa ihop detta från. Det är samma grejer som jag hade i en annan fråga för ett tag sedan.

Polls
Id
Question

Polls_alternatives
Id
PollId (Id till den poll alternativet tillhör)
Alternative

Medlem sedan dec. 200012 464 inlägg
#2

Med senaste frågan så menar du alltså den post i Polls som har högst ID? (Det skulle nog vara bättre att använda en tid för detta.)

select p1.id,p1.question,pa.alternative
from polls p1 inner join polls p2
on p1.id = p2.id
inner join Polls_alternative pa
on p2.id = pa.Pollid
group by p1.id,p1.question,pa.alternative
having p1.id = max(p2.id)
Medlem sedan nov. 2001274 inlägg
#3

Lyckas bara få ut alla alternativ med den frågan. :( Varför vill det inte funka om man helt enkelt petar in en "where p1.id = max(p2.id)" i slutet?

Medlem sedan dec. 200012 464 inlägg
#4
select p1.id,p1.question, pa.alternative
from polls p1 , polls p2  ,  polls_alternative pa
group by p1.question,p1.id, pa.alternative,pa.polls_id
having p1.id = max(p2.id)
   and pa.polls_id = max(p2.id);
266 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)