webForumDet fria alternativet

[MySQL] Hämta data från två tabeller

Databaser & SQL

2 svar · 481 visningar · startad av Sparven

Medlem sedan apr. 200378 inlägg
Frågan#1

Jag försöker komma på hur jag på ett så smidigt sätt som möjligt kan räkna ut poängligor utifrån två tabeller, en vid namn spelare och en som heter hockeystatistik. De ser ut på följande sätt:

tabell.SPELARE
Fält  		Typ   		Null
id  		int(4) 		Nej
lag  		int(2) 		Nej
fornamn  	varchar(20) 	Nej
efternamn  	varchar(40) 	Nej
position  	char(2) 	Nej

tabell.HOCKEYSTATISTIK
Fält  		Typ   	Null
id  		int(10) Nej
spelarid  	int(3) 	Nej
gp  		int(1) 	Nej
g  		int(2) 	Nej
a  		int(2) 	Nej
pts  		int(2) 	Nej
plusminus  	int(2) 	Nej
pim  		int(2) 	Nej
shots  		int(2) 	Nej
ga  		int(2) 	Nej
min  		int(3) 	Nej

För varje match en spelare har spelat får han en rad i tabellen HOCKEYSTATISTIK, därmed kommer samma spelarid återkomma på olika rader. Jag kan få ut varje spelares totala statistik genom att SQL-raden:

select sum(gp) as tgp, ..., sum(shots) as tshots from hockeystatistik group by spelarid

Problemet är att jag med hjälp av informationen som finns i tabellen SPELARE ska kunna sortera bort spelare baserade på vilket värde de har i, exempelvis, fältet spelare.position. Hur skriver man SQL-raden för att få ut den informationen?

Tack på förhand

Medlem sedan dec. 20025 483 inlägg
#2

Någonting sådant här:

select sum(hs.gp) as tgp,
       sum(hs.shots) as tshots,
       ...,
       hs.spelarid
  from hockeystatistik hs
inner
  join spelare s
    on hs.spelarid = s.id
 where s.position  = 'GK'
group
    by hs.spelarid
Medlem sedan apr. 200378 inlägg
#3

Peter S: Tackar!

262 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)