Ik ben geen expert op het gebied van SQL en ben nu aan het experimenteren met wat queries. Ik heb twee werkende queries gedraaid met een join, maar een combinatie van deze queries maakt hem traag en ik krijg een onverklaarbaar resultaat.
Nummer 1:
Deze duurde 0.0111 sec en gaf netjes het resultaat: het aantal geuploade foto's per gebruiker.
Nummer 2:
Deze duurde 0.0052 sec en gaf netjes het resultaat: het aantal stemmen per gebruiker.
Nummer 3:
Pas na 3.9845 sec gaf deze resultaat, en er klopt geen reet van. Ik zou 1440936 foto's hebben geplaatst, en evenveel stemmen. In werkelijkheid zijn het 953 foto's, en 1512 stemmen. Dit keer elkaar is inderdaad 1440936, maar waarom dat werkt weet ik niet. Wie helpt mij verder?
Nummer 1:
SQL:
1
2
3
4
5
| SELECT username, count( stephan_fotos.id ) AS aantal_fotos FROM stephan_profielen LEFT JOIN stephan_fotos ON stephan_fotos.userid = stephan_profielen.id GROUP BY stephan_profielen.id LIMIT 0 , 30 |
Deze duurde 0.0111 sec en gaf netjes het resultaat: het aantal geuploade foto's per gebruiker.
Nummer 2:
SQL:
1
2
3
4
5
| SELECT username, count( stephan_fotos_votes.id ) AS aantal FROM stephan_profielen LEFT JOIN stephan_fotos_votes ON stephan_fotos_votes.userid = stephan_profielen.id GROUP BY stephan_profielen.id LIMIT 0 , 30 |
Deze duurde 0.0052 sec en gaf netjes het resultaat: het aantal stemmen per gebruiker.
Nummer 3:
SQL:
1
2
3
4
5
6
7
8
| SELECT username, count(stephan_fotos_votes.id) AS aantal_stemmen, count(stephan_fotos.id) AS aantal_fotos FROM stephan_profielen LEFT JOIN stephan_fotos ON stephan_fotos.userid = stephan_profielen.id LEFT JOIN stephan_fotos_votes ON stephan_fotos_votes.userid = stephan_profielen.id GROUP BY stephan_profielen.id LIMIT 0 , 30 |
Pas na 3.9845 sec gaf deze resultaat, en er klopt geen reet van. Ik zou 1440936 foto's hebben geplaatst, en evenveel stemmen. In werkelijkheid zijn het 953 foto's, en 1512 stemmen. Dit keer elkaar is inderdaad 1440936, maar waarom dat werkt weet ik niet. Wie helpt mij verder?