MYSQL: Het aantal reacties optellen bij een bepaalde 'id' en in een kolom zetten
de koppel_id is bv_id,
Ik wil naast het ophalen van de rows van vacatures per opgehaalde vacature een extra kolom
dernaast hebben met het aantal reacties.
Dan kan ik zeggen: vacature "jantje" heeft "5" reacties en vacature "piet" heeft er maar "1" of geen
Ik heb het geprobeerd met (in het kort):
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
SELECT
bv.bv_id,
bv.bv_functie,
CONCAT(count(bsol.bsol_id)) as aantal_bsol
LEFT JOIN beheer_solicitaties bsol
ON bv.bv_id = bsol.bv_id
GROUP BY bsol.bsol_id
bv.bv_id,
bv.bv_functie,
CONCAT(count(bsol.bsol_id)) as aantal_bsol
LEFT JOIN beheer_solicitaties bsol
ON bv.bv_id = bsol.bv_id
GROUP BY bsol.bsol_id
Het resultaat is verkeerd.
Ik kan nog niet verzekerd aan de slag met MySQL, wie kan de syntax opbouw hiervan verbeteren? dank
Hiermee zou je iets meer in de richting moeten komen (waarschijnlijk nog niet helemaal juist)
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
SELECT
bv.bv_id,
bv.bv_functie,
count(bsol.bsol_id) as aantal_bsol
FROM beheer_vacatures AS bv
LEFT JOIN beheer_solicitaties AS bsol
ON bv.bv_id = bsol.bv_id
GROUP BY bsol.bsol_id
bv.bv_id,
bv.bv_functie,
count(bsol.bsol_id) as aantal_bsol
FROM beheer_vacatures AS bv
LEFT JOIN beheer_solicitaties AS bsol
ON bv.bv_id = bsol.bv_id
GROUP BY bsol.bsol_id
Gewijzigd op 11/02/2014 15:00:59 door Michael -
Toevoeging op 11/02/2014 15:26:47:
Alhoewel Ger het mij ook uitgelegd ("onverwachte resultaten als je group_by vergeet") maar nu zit het echt in mij hoofd
Gewijzigd op 11/02/2014 15:24:52 door Francoi gckx
http://rpbouman.blogspot.nl/2007/05/debunking-group-by-myths.html
(de uitleg over GROUP BY is hier wel goed, het hele 'myth debunk' verhaal is weer iets anders).
Voor als je ook precies wilt weten waarom: (de uitleg over GROUP BY is hier wel goed, het hele 'myth debunk' verhaal is weer iets anders).
Ok joo interessante site om te bekijken
Postgres staat toe dat je een group_by doet op een PK zolang de andere kolommen in de SELECT bij elke rij dezelfde waarde behouden (i.e functioneel afhankelijk van de PK).
Daar heb ik dat van overgenomen, blijkt het ook nog eens naar de SQL standaard te zijn.