Räkna nollvärden

Databaser & SQL

1 svar · 210 visningar · startad av schutzer

Medlem sedan okt. 200019 inlägg
Trådstart#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;
258 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)