Selecteer Maximum Count
Ik heb een klein probleem met mySQL. Ik heb een database met een 2 tabellen. 1 tabel is 'stories' met 2 velden. Namelijk id en content. de volgende tabel is genaamd likes met ook 2 velden genaamd id en story_id. Story id gelinkt aan de id van de story zelf.
Ik wil de story selecteren die de meeste likes heeft. Ik pieker hier nu al een tijdje over en kom er maar niet uit. Ik had zelf de volgende aanpak in gedachten. Tel alle likes bij elkaar op van elke story en pak daar de hoogste van. Maar al mijn queries zijn tot nu toe gefaald. Ik hoop dat jullie me een beetje op weg kunnen helpen.
Alvast bedankt.
Ik zou een ORDER BY in combinatie met een COUNT aanraden en vervolgens een LIMIT 0,1.
Code (php)
1
2
3
4
5
2
3
4
5
SELECT likes.story_id, COUNT(*) AS countlikes
FROM likes
GROUP BY id
ORDER BY COUNT(*) DESC
LIMIT 1
FROM likes
GROUP BY id
ORDER BY COUNT(*) DESC
LIMIT 1
krijg je de id uit likes met hoogste count
Je kunt dan likes.story_id gebruiken om de story op te halen.
Je kunt het ook in 1 sql doen, door de vorige sql als subselect te gebruiken
Story_id | Likes |
23 | 1 |
21 | 1 |
21 | 1 |
21 | 1 |
En als ik de query volledig run van Jan krijg ik dit:
id | content
23 | test story
Moet natuurlijk dit zijn (had het uit hoofd ingetikt en niet getest):
Code (php)
1
2
3
4
5
2
3
4
5
SELECT likes.story_id, COUNT(*) AS countlikes
FROM likes
GROUP BY story_id
ORDER BY COUNT(*) DESC
LIMIT 1
FROM likes
GROUP BY story_id
ORDER BY COUNT(*) DESC
LIMIT 1
en