我有2个表news
和news_category
他们可以加入news.category_id = news_category.id
我想获取所有news_category
行,并为每个category id
感谢有帮助的文字
答案 0 :(得分:0)
施瓦茨男爵已经很好地解释了这个问题 LINK
以下基于他的方法。您可以在db-fiddle中自己尝试。 db-fiddle,我创建了一个简化的架构来显示它。
set @num := 0, @category_id := '';
select t.id, t.title
from (
select category_id, id, title,
@num := if(@category_id = category_id, @num + 1, 1) as row_number,
@category_id := category_id as dummy
from news
group by category_id, id, title
) t
where t.row_number <= 3
更新
正如下面的戈登·利诺夫(Gordon Linoff)所述,不能保证此答案有效。在引用的博客中也对此做了很好的解释。
答案 1 :(得分:0)
不幸的是,不管参考文献中所说的是什么,都不能保证Jacob的答案有效。问题是MySQL无法保证SCNNode
中表达式的求值顺序。因此,您不应在一个表达式中分配变量,然后在另一个表达式中使用它。行为可以改变。
此外,当将变量与ARSCNView
和SELECT
一起使用时,MySQL的最新版本更加挑剔,因此需要一个附加的子查询。
查询不需要group by
。您应该使用order by
:
group by