NYCPHP Meetup

[nycphp-talk] Can I do this in one query?

harvey list at harveyk.com
Sat Apr 9 08:34:11 EDT 2005


this will get you all your results in one query
but unfortunately doesn't limit to 5 per category
you can do that when you're printing the results
(or of course maybe there's some fancier query that can do it for you)
select name, points from scores group by category asc order by points desc


At 12:28 AM 4/9/2005, Tom wrote:

>Can I do this in one query?
>
>Suppose I have a three column table (it is really not, but I'm trying to
>keep it simple)
>
>table: scores
>name, varchar(40)
>category, varchar(40)
>points, int
>
>
>I would like to select the top 5 in each category with the most amount of
>points, and group them by category, to ultimately be displayed like this:
>
>
>CATEGORY1
>
>person1  1000
>person2  900
>person3  800
>person4  700
>person5  600
>
>
>CATEGORY2
>
>person1  950
>person2  800
>person3  700
>person4  500
>person5  400
>
>
>I see that I can do this in two queries and some PHP code, by driving a loop
>with the DISTINCT category, and saying something like
>
>SELECT name,points FROM scores WHERE category='$category' ORDER BY points
>DESC LIMIT 0,5
>
>but there must be a better way
>
>
>Thanks,
>
>
>Tom
>http://www.liphp.org
>
>
>_______________________________________________
>New York PHP Talk Mailing List
>AMP Technology
>Supporting Apache, MySQL and PHP
>http://lists.nyphp.org/mailman/listinfo/talk
>http://www.nyphp.org




More information about the talk mailing list