Beste tweakers,
Ik ben een fotoalbum aan het maken wat voor het grootste deel af is. Als laatste ben ik een statistiekenpagina aan het maken waarop mensen kunnen zien wie de meeste foto's en reacties heeft geplaatst.
Voor wie de meeste reacties heeft geplaatst heb ik een redelijk eenvoudige query maar voor de fotorankinglijst is een wat ingewikkeldere nodig. Er is onder andere een JOIN nodig alleen krijg ik die tot mijn spijt niet goed. Het lastigste punt is dat een gebruiker meerdere albums kan hebben en dat je alle foto's uit die albums moet terugbrengen tot 1 gebruiker..
Dit is mijn db structuur (alleen de velden die betrekking hebben op het probleem):
Albums
* id
* member
Photos
* id
* album
Member
* id
* first_name
En zo wil ik het overzicht dus hebben:
1. Jack 215 photo's (in 3 albums)
2. Chris 123 photo's (in 1 album)
3. Laura 56 photo's (in 2 albums)
Ik kan ook een member-veld toevoegen aan de photos-tabel omdat ik de albums-tabel dan niet meer hoef aan te roepen. Dit wil ik alleen niet omdat je zo weinig mogelijk velden moet gebruiken in je db.
Is er iemand die hier een sql-query uit voort kan breien?
Ik had zoiets:
SELECT t1.first_name AS firstname,
COUNT(t2.id) AS photos,
COUNT(t3.id) AS albums
FROM members AS t1
JOIN photos AS t2, albums AS t3
ON (t3.member = t1.id AND t2.album = t3.id)
Ik ben een fotoalbum aan het maken wat voor het grootste deel af is. Als laatste ben ik een statistiekenpagina aan het maken waarop mensen kunnen zien wie de meeste foto's en reacties heeft geplaatst.
Voor wie de meeste reacties heeft geplaatst heb ik een redelijk eenvoudige query maar voor de fotorankinglijst is een wat ingewikkeldere nodig. Er is onder andere een JOIN nodig alleen krijg ik die tot mijn spijt niet goed. Het lastigste punt is dat een gebruiker meerdere albums kan hebben en dat je alle foto's uit die albums moet terugbrengen tot 1 gebruiker..
Dit is mijn db structuur (alleen de velden die betrekking hebben op het probleem):
Albums
* id
* member
Photos
* id
* album
Member
* id
* first_name
En zo wil ik het overzicht dus hebben:
1. Jack 215 photo's (in 3 albums)
2. Chris 123 photo's (in 1 album)
3. Laura 56 photo's (in 2 albums)
Ik kan ook een member-veld toevoegen aan de photos-tabel omdat ik de albums-tabel dan niet meer hoef aan te roepen. Dit wil ik alleen niet omdat je zo weinig mogelijk velden moet gebruiken in je db.
Is er iemand die hier een sql-query uit voort kan breien?
Ik had zoiets:
SELECT t1.first_name AS firstname,
COUNT(t2.id) AS photos,
COUNT(t3.id) AS albums
FROM members AS t1
JOIN photos AS t2, albums AS t3
ON (t3.member = t1.id AND t2.album = t3.id)
[ Voor 5% gewijzigd door Gersomvg op 15-08-2008 17:24 ]