开发者社区> 问答> 正文

mySQL返回每个类别的前5名?mysql

我希望能够为每个菜单返回5个菜单项。我试过这几个脚本,但没有运气。这是桌子

menus

menuid int() profileName varchar(35)

menuitems

itemid int() name varchar(40) 这是我现在所拥有的。我收到以下脚本的错误消息。错误:子查询返回的行数超过1。

SELECT m.profilename, name FROM menus m WHERE (SELECT name from menuitems s where m.menuid = s.menuid limit 5) 任何建议都非常感谢。

展开
收起
保持可爱mmm 2020-05-17 19:37:23 868 0
1 条回答
写回答
取消 提交回答
  • 您必须为此使用副作用变量

    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来源:stack overflow

    2020-05-17 19:44:29
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

相关镜像