Kohana 3 ORM:获取最多重复的值、排名并插入到新对象/数组中
因此,这是我的 Kohana 3 ORM 问题系列中的另一个问题:)
本质上,我有一个数据透视表,称为连接
。 connections
表将歌曲
连接到关键字
。这一切都很棒并且有效(感谢我的最后两个问题!)
我想按关键字输出最相关的歌曲。因此,要以某种方式查询我的 connections
表并输出一个对象(具有任意有限的迭代次数 $n
),该对象按歌曲的连接次数对歌曲进行排名, IE。特定 song_id
对于特定 keyword_id
出现的次数。
我真的不知道如何实现这一点,而不查询每一行(!!!),然后在数组中计算这些单独的结果......必须有一种更优雅的方法来实现这一点?
So, another in my series of Kohana 3 ORM questions :)
I have, essentially, a pivot table, called connections
. The connections
table connects a song
to a keyword
. That's all great and working (thanks to my last two questions!)
I want to output the most connected songs by keyword. So, to somehow query my connections
table and output an object (with an arbitrarily limited number of iterations $n
) that ranks songs by the number of times they have been connected, ie. the number of times that particular song_id
appears for that particular keyword_id
.
I have literally no idea how to achieve this, without querying every single row (!!!) and then counting those individual results in an array.... There must be a more elegant way to achieve this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我认为这更多的是一个 SQL 问题。 使用 DB 查询构建器:
在 SQL 中
或应该返回您想要的结果。
您需要在歌曲模型中拥有一个名为
nconnections
的可访问属性。最简单的方法是添加一个公共成员,这样就不会篡改 ORM 的内部工作原理。我假设您正在使用一个名为“歌曲”的模型,链接到“歌曲”表,一个“关键字”模型链接到“关键字”表,并且在“连接”表中使用外键“song_id”和“keyword_id” ' 分别针对每个模型。
I believe this is more of an SQL question. Using the DB query builder:
or in SQL
should return the result you want.
You'll want to have an accessible property called
nconnections
in your song model. The simplest way to do that is to add a public member so you don't tamper with ORM's inner workings.I'm assuming you're using a model called 'Song', linked to a 'songs' table, a 'Keyword' model linked to a 'keywords' table and in the 'connections' table foreign keys 'song_id' and 'keyword_id' for each model respectively.