使用内部联接获取不同的行

时间:2016-10-17 13:48:05

标签: ruby-on-rails ruby-on-rails-3.2

我使用Rails 3.2发表此声明:

Event.joins(:picks).where(picks: {result: nil,created_at: 5.days.ago..Time.now,league_id: 1})

它会返回我想要的内容,但会有许多重复的事件。

如何才能获得独特的活动?

我尝试将.distinct添加到结尾,但它返回

#<Arel::Nodes::Distinct:0x007fc13e587800>

2 个答案:

答案 0 :(得分:2)

Event.joins(:picks).where(picks: {result: nil,created_at: 5.days.ago..Time.now,league_id: 1}).group('events.id')

答案 1 :(得分:0)

你可以试试这个。

event_id_query = Pick.where(result: nil,created_at: 5.days.ago..Time.now,league_id: 1).select(:event_id)
Event.where(id: event_id_query)

这将创建子查询,并且只返回数据库中的不同事件。