webForumDet fria alternativet

Få ut topplista

4 svar · 266 visningar · startad av Obbelix

ObbelixMedlem sedan okt. 2002257 inlägg
#1

Undrar hur jag ska få ut en topplista (typ topp 10) utifrån detta:

Har en tabell där det bl.a sparas vilka spelar-id:n som blivit matchens lirare, en för hemmalaget och en för bortalaget.
Nu skulle jag vilja få ut vilka som blivit matchens lirare flest gånger.
ex.

[b]Tabell 1[/b]
homeplayer | awayplayer
-----------------------
12           23
23           31
12           21

[b]Tabell 2[/b]
id | namn
-----------
12   Peter
21   Kalle
23   Olle
31   Pelle

Och vill då få ut:

Spelare | Antal
----------------
Peter     2
Olle      2
Kalle     1
Pelle     1

Går det att få ut i en och samma fråga?
Använder MSSQL.

LarsGMedlem sedan dec. 200012 464 inlägg
#2
select namn,count(*) as antal
from (
select homeplayer
from t2
union all
select awayplayer
from t2) dt
inner join t1 on t1.id = dt.homeplayer 
group by namn
order by antal desc
ObbelixMedlem sedan okt. 2002257 inlägg
#3

Tackar!
Funkar bra, men jag kom på att det finns flera fält jag vill få ut från tabellen "t1" samt även göra en inner join på fältet "team_id" i t1 mot tabellen "teams", fält "id" och därifrån få med fältet "team_name". Så om det går att få ut resultatet så här vore det klockrent!

[b]Resultat[/b]
id | namn | team_id | team_name | antal
----------------------------------------
12   Peter  22        Testlag     2

/red: Testade att lägga till flera fält efter "select namn", men det ville inte funka

LarsGMedlem sedan dec. 200012 464 inlägg
#4
select id,namn,team_id,team_name,count(*) as antal
from (
select homeplayer
from t2
union all
select awayplayer
from t2) dt
inner join t1 on t1.id = dt.homeplayer 
inner join teams on t1.team_id = teams.team_id
group by id,namn,team_id,team_name
order by antal desc

Om du lägger till kolumner i select-listan så måste dessa även ingå i group by.

ObbelixMedlem sedan okt. 2002257 inlägg
#5

Jihaa! Precis som jag ville ha det!
Tack LarsG! (Guden av SQL-frågor) :)

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