webForumDet fria alternativet

Räkna nollvärden

Databaser & SQL

1 svar · 205 visningar · startad av schutzer

Medlem sedan okt. 200019 inlägg
Frågan#1

Jag har två tabeller, en med användare (users) och en med inlägg (messages).

I users finns bla fältet id.
I messages finns bla id och userid.

Nu vill jag räkna hur många inlägg varje användare gjort och detta gör jag med:

SELECT u.id,COUNT(m.id) AS antal FROM users AS u,messages AS m WHERE u.id=m.userid GROUP BY u.id;

Detta fungerar utmärkt förutom i det fall när användaren inte har gjort några inlägg. Då vill man ju att antal ska bli noll och inte att den raden helt ska försvinna.

Någon som har en aning om hur man kan lösa det?

Medlem sedan dec. 200012 464 inlägg
#2

Använd outer join

SELECT u.id,COUNT(m.id) AS antal FROM users AS u left outer join messages AS m on u.id=m.userid GROUP BY u.id;

------------------
essentitia preter non sans multiplicandum

289 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
159 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)