【问题标题】:Rails join and countRails 连接和计数
【发布时间】:2017-05-26 03:17:31
【问题描述】:

我对 Rails(Rails 4)比较陌生。 所以我有一个表talent_media,它有talent_idmedia_id 属性。

相同的media_id 会出现很多次。 Kanye (talent_id) 可能喜欢 20 首不同的歌曲 (media_id),例如,每首歌曲都在自己的行中。 我还有一个 Media 表,它有不同的行。 我需要根据media_id 行找到前100 个talent_media 条目,并将其与基于media.id 行的Media 表连接起来。所以本质上我会在talent_media 表中获取最受欢迎的歌曲,然后加入它们以从Media 表中返回实际的媒体信息。

我希望这是有道理的。

【问题讨论】:

    标签: mysql ruby-on-rails ruby ruby-on-rails-4 activerecord


    【解决方案1】:

    您可以查询您的TalentMedia 模型以获取结果..

    @top_100 = TalentMedia.includes(:media).select(:media_id).order('count(talent_id) desc').group(:media_id).limit(100)
    

    然后,您可以像这样循环显示它们中的每一个,

    @top_100.each do |topper|
      topper.media.name
    end
    

    【讨论】:

    • 嗯,这似乎不起作用:'Mysql2::Error: Unknown column 'media.talent_medium_id' in 'where clause': SELECT media.* FROM media WHERE media .talent_medium_id IN ('')):'
    • 哦,可能遗漏了什么,你能发布它生成的 sql 查询吗?使用.to_sqlTalentMedia.includes(:media).select(:media_id).order('count(talent_id) desc').group(:media_id).to_sql
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多