mySQL Returning the top 5 of each category

前端 未结 2 1984
余生分开走
余生分开走 2020-11-27 17:07

I want to be able to return 5 menuitem per menu. I\'ve tried this several script but had no luck. here are the tables

menus
-------
menuid int()
profileName          


        
相关标签:
2条回答
  • 2020-11-27 18:00
    SELECT TOP 5 m.profilename, s.name
    FROM menus m INNER JOIN menuitems s ON m.menuID = s.menuid
    
    0 讨论(0)
  • 2020-11-27 18:02

    You have to use side effecting variables for this

    SELECT profilename, name
    FROM
    (
        SELECT m.profilename, s.name,
            @r:=case when @g=m.profilename then @r+1 else 1 end r,
            @g:=m.profilename
        FROM (select @g:=null,@r:=0) n
        cross join menus m 
        left join menuitems s on m.menuid = s.menuid
    ) X
    WHERE r <= 5
    
    0 讨论(0)
提交回复
热议问题