webForumDet fria alternativet

Kombinera två tabeller

Databaser & SQL

4 svar · 333 visningar · startad av Troxy

Medlem sedan mars 20041 505 inlägg
Frågan#1

Hej, jag har lite problem med att kombinera dessa två tabeller och få ut det resultat jag önskar.
Detta är mina tabeller:

t_teams

id	teamname	created
----------------------------------
1	Lag öst		2005-01-01
2	Lag väst	2005-01-02
3	Lag nord	2005-01-03
4	Lag syd		2005-01-04

t_players

id	team		nickname
----------------------------------
1	1		Adam
2	1		Bertil
3	1		Cesar
4	2		David
5	2		Erik
6	3		Fredrik

Hur ska SQL-frågan se ut för följande resultat?

teamname	created		player
--------------------------------------
Lag öst		2005-01-01	3
Lag väst	2005-01-02	2
Lag nord	2005-01-03	1
Lag syd		2005-01-04	0

Tack på förhand!

Medlem sedan mars 20034 471 inlägg
#2

Pröva följande:

SELECT T.teamname, T.created, COUNT(P.id) AS players
FROM t_teams T, t_players P
WHERE T.id = P.team
GROUP BY T.teamname, T.created

Det borde nog funka eftersom varje team bara har ett värde på created.

Medlem sedan mars 20041 505 inlägg
#3

Tack! Det fungerar nästan fullt ut!
Problemet är att lagen som har 0 spelare inte presenteras.

Går detta att lösa?

Medlem sedan dec. 20025 483 inlägg
#4
SELECT T.teamname
     , T.created
     , COUNT(P.id) AS players
  FROM t_teams T
LEFT OUTER
  JOIN t_players P
    ON T.id = P.team
GROUP 
    BY T.teamname
     , T.created
Medlem sedan mars 20041 505 inlägg
#5

Tack, det fungerar perfekt!

Jag förstod inte mycket, men det är väl bara att tacka och ta emot! :e

269 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
131 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)