COUNT telt niet goed
Kay Kay
17/03/2009 22:27:00Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
SELECT
c.naam,
c.id,
c.beschrijving,
COUNT(r.id) as reacties,
COUNT(t.id) as topics
FROM
categorie as c
LEFT JOIN
topics as t
ON (c.id = t.cat)
LEFT JOIN
reacties_forum as r
ON (c.id = r.cat)
GROUP BY
c.naam,
c.id,
c.beschrijving
ORDER BY
c.sort ASC
c.naam,
c.id,
c.beschrijving,
COUNT(r.id) as reacties,
COUNT(t.id) as topics
FROM
categorie as c
LEFT JOIN
topics as t
ON (c.id = t.cat)
LEFT JOIN
reacties_forum as r
ON (c.id = r.cat)
GROUP BY
c.naam,
c.id,
c.beschrijving
ORDER BY
c.sort ASC
Ik heb nu 2 topics en 3 reacties in een categorie en hij telt 6 topics en 6 reacties.
Wat is er fout?
PHP hulp
08/10/2024 05:01:50Willem Jan Z
17/03/2009 22:52:00Heb even geen tijd er heel uitgebreid naar te kijken, maar horen je reacties niet gekoppeld aan een topic in plaats van een categorie?
Kay Kay
18/03/2009 15:30:00Euhm, ja, dat moet niks uit maken. Ik heb het ook geprobeerd. Ik wil het aantal reacties in een categorie hebben, dus dan lijkt het me logischer om de reacties aan een categorie te koppelen. Natuurlijk zijn de reacties ook gekoppeld aan een topic :)
Kay Kay
19/03/2009 16:28:00Jesper Diovo
19/03/2009 17:28:00En je hebt het aantal reacties per categorie :-). Je kunt dit makkelijk uitbreiden naar een query (met subqueries dus) die doet wat jij wilt.
Kay Kay
19/03/2009 19:35:00Ed
19/03/2009 20:06:00Kay Kay
19/03/2009 21:41:00Het werkt op deze manier:
Maar ik denk dat niet dat dit echt optimaal is/het nog wel beter kan..
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
SELECT
c.naam,
c.id,
c.beschrijving,
COUNT(DISTINCT r.id) as reacties,
COUNT(DISTINCT t.id) as topics
FROM
categorie as c
LEFT JOIN
topics as t
ON (c.id = t.cat)
LEFT JOIN
reacties_forum as r
ON (c.id = r.cat)
GROUP BY
c.naam,
c.id,
c.beschrijving
ORDER BY
c.sort ASC
c.naam,
c.id,
c.beschrijving,
COUNT(DISTINCT r.id) as reacties,
COUNT(DISTINCT t.id) as topics
FROM
categorie as c
LEFT JOIN
topics as t
ON (c.id = t.cat)
LEFT JOIN
reacties_forum as r
ON (c.id = r.cat)
GROUP BY
c.naam,
c.id,
c.beschrijving
ORDER BY
c.sort ASC
Maar ik denk dat niet dat dit echt optimaal is/het nog wel beter kan..