Aantal views het slimst ophalen.
Slim Shady
09/02/2012 01:38:43Hallo,
Ik heb een tabel met aantak views op een video.
Ik wil bijvoorbeeld de vaakst bekeken videos ophalen van een bepaald categorie.
Ik wil dan niet alle records ophalen en daarna tellen hoeveel het er per categorie zijn.
Ik wil dus dat het checkt welke 10 videos het vaakst bekeken zijn en daarna stopt met het uitvoeren van query.
Kollommen in mijn tabel:
Id, Naam, DatumVanView
Hoe kan ik dit het beste aanpakken?
MVG,
Ik heb een tabel met aantak views op een video.
Ik wil bijvoorbeeld de vaakst bekeken videos ophalen van een bepaald categorie.
Ik wil dan niet alle records ophalen en daarna tellen hoeveel het er per categorie zijn.
Ik wil dus dat het checkt welke 10 videos het vaakst bekeken zijn en daarna stopt met het uitvoeren van query.
Kollommen in mijn tabel:
Id, Naam, DatumVanView
Hoe kan ik dit het beste aanpakken?
MVG,
PHP hulp
22/11/2024 22:32:33Ozzie PHP
09/02/2012 06:39:12Zoiets: bijvoorbeeld
SELECT Id, Naam, FROM videos WHERE Category=Sport ORDER BY AantalKeerBekeken LIMIT 10
Je moet dus wel een AantalKeerBekeken veld in je tabel hebben staan.
SELECT Id, Naam, FROM videos WHERE Category=Sport ORDER BY AantalKeerBekeken LIMIT 10
Je moet dus wel een AantalKeerBekeken veld in je tabel hebben staan.
Erwin H
09/02/2012 09:00:15Ozzie PHP op 09/02/2012 06:39:12:
Je moet dus wel een AantalKeerBekeken veld in je tabel hebben staan.
En dat kan je dan weer met een JOIN en een COUNT doen:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
SELECT id, naam, COUNT(view_tabel) AS AantalKeerBekeken
FROM videos
LEFT JOIN view_tabel ON videos.id = view_tabel.id
WHERE category = 'sport'
GROUPY BY id, naam
ORDER BY COUNT(view_tabel) DESC
LIMIT 10
FROM videos
LEFT JOIN view_tabel ON videos.id = view_tabel.id
WHERE category = 'sport'
GROUPY BY id, naam
ORDER BY COUNT(view_tabel) DESC
LIMIT 10
Let op dat ik in de count kolom wel een alias heb meegegeven, maar dat niet gebruik in de ORDER BY clausule. Mijn ervaring is dat dat normaal gesproken niet werkt, waarom kan ik je niet uitleggen.