[MySQL] Betalingen tellen.

Gestart doorWouterr4 reacties43 weergaven

5 berichten · pagina 1 van 1

Wouterr

Lid · Topicstarter

Berichten
5.274
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien

Eindhoven, Nederland

Hey,

Ik was bezig om een pagina te maken waar de tops staan, alleen ik loop vast bij de betalingen query.
Ik heb nu dit:

SELECT user.username, COUNT(betalingen.id) as total FROM user, betalingen WHERE betalingen.succes = 1 AND user.rank <= 3 AND user.id = betalingen.user_id ORDER BY total DESC LIMIT 10


Deze query moet dus het volgende weergeven:
- De user met de meeste keer betaald.
- Geen rank eigenaar (Rank 4)
- Een maximum van 10 users
- Van veel betalingen naar weinig betalingen.
Iemand weet hoe ik dit moet oplossen?

Alvast bedankt =)
0
Berichten
6.201
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Geen idee of het iets uitmaakt, maar ik heb even de as total gewijzigd in alleen total:

mysql_query("
  SELECT 
      user.username, 
      COUNT(betalingen.id) total 
  FROM 
      user, 
      betalingen 
  WHERE 
      betalingen.succes = 1 
  AND 
      user.rank <= 3 
  AND 
      user.id = betalingen.user_id 
  ORDER BY 
      total 
  DESC LIMIT 10");
0
Wouterr

Lid · Topicstarter

Berichten
5.274
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien

Eindhoven, Nederland

Nu komt er 1 speler met alle betelingen ;s.
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
SELECT
    u.username,
    (SELECT COUNT(b.id) FROM betalingen b WHERE b.user_id = u.user_id AND b.success = 1) AS uitbetalingen
FROM
    user u
WHERE
    u.rank < 4
ORDER BY
    uitbetalingen DESC
LIMIT
    10


zo? en zo nee, post eens een screen met de output die je krijgt

Alleen kun je volgens mij niet orderen op subqueries, dus dat moet je even nachecken.
Ik zou de boel wel cachen trouwens, die query wordt traag als je geen indexen hebt en je hebt een redelijk aantal leden en uitbetalingen.

Bij jouw werkwijze -een dubbele query zegmaar- loop je in de fout als er 0 uitbetalingen zijn, en als dat niet erg is dan mis je nog een group by, volgens mij kan je hem dan ook werkend krijgen.
0
Wouterr

Lid · Topicstarter

Berichten
5.274
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien

Eindhoven, Nederland

Alle databases zijn geindexeerd, en ik leeg mijn Betaal logs nooit, dus in preciepen zal de query nooit fout moeten gaan.

Bedankt, ik zal ff testen.

toevoeging op 25 april 2012, 11:55:03:
Damn, ik laat 1x die pagina, en de hele website crasht xdMe MySQL server is echt instabiel sadley.
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren