我希望能够为每个菜单返回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)
任何建议都非常感谢。
您必须为此使用副作用变量
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
问题内容: 在此查询中,我指定要退回(硬编码)的汽车型号。因此,下面的SQL为每种模型返回 一条 记录: 现在有可能在没有联合的情况下使此SQL返回多个由某个字段指定的模型。例子: 我知道“拥有数量”没有意义,但是我需要一种方法来指定每个模型要返还多少辆汽车。 http://sqlfiddle.com/#!2/421e4/1/0 问题答案: 尝试像下面那样为每个组生成行号,然后将行数限制为im以下
问题内容: c_data中的每个项目都在一个类别/部分中。我想限制每个类别显示多少个项目,而不是限制检索到的项目总数。显然,如果在查询中添加“ limit 20”之类的内容,则总共只能获取20个结果,而不是每个类别20个结果。 具有类别的字段是“ sectionid”。 问题答案: MySQL没有任何排名功能,但是您可以使用变量来创建伪行号。 使用:
我在我的ASP.NET 4.5网络项目中使用了实体框架。我有一个产品表,每个产品都有其类别和子类别。一个类别可能没有子类别。 餐桌产品 id 名称 category_id 子类别_id 日期 表类别 category_id parent_category_id 如果该类别具有,则它是父类别,否则它是同一表中另一个类别的子类别。 我想在Entity Framework中创建一个查询,按日期从最新到最
问题内容: 有没有更有效的方法来执行以下操作? 这个答案看起来很相似,但这是这样做的最好方法- 如何在MySQL中为每个组选择第一行? 谢谢, 克里斯。 PS表看起来像: 数据: 结果: 有关更多详细信息,请参见http://www.barricane.com/2012/02/08/mysql-select-last-matching- row.html 。 问题答案: 试试这个查询- 然后使用E
问题内容: 我有一张这样的桌子: 我需要按升序排列每个字母的前2个: 我该怎么办?使用GROUP BY获得前1名非常简单,但是我似乎无法让它适用于多个条目 问题答案: 编辑:(我的第一次尝试将无法在MySql(Quassnoi注释)上工作,例如,我将其修改为可在sql服务器上工作) 第二次尝试:
问题内容: 我已经搜索了可能的解决方案。并且我尝试了循环以及mysql_fetch_assoc和mysql_fetch_array的变体,但我仍然遇到资源ID#5:0:错误。 这是我认为会产生错误的代码。 问题答案: “资源ID#5:0”不是错误。这意味着您试图而不是尝试使用变量,例如对于fetch_assoc 使用$ row [column],对于fetch_row使用$ row [0],对于f