我需要从 MySQL 表table1
(如下所示)中选择具有不同 'foreign_row_id' 值的所有记录,并按最大值对它们进行分组datetime
。例如,我应该从下表中选择 id=2 和 id=3 的行。在此之后,我必须将结果与带有phrase_id 的表连接起来。在我的项目中,我只使用没有 Rails 的 Ruby 和 ActiveRecord。
+----+---------------------+----------------+--------------+
| id | datetime | foreign_row_id | other_fields |
+----+---------------------+----------------+--------------+
| 1 | 2013-05-02 17:36:15 | 1 | 1 |
| 2 | 2013-05-02 17:36:53 | 1 | 1 |
| 3 | 2013-05-03 00:00:00 | 2 | 3 |
+----+---------------------+----------------+--------------+
这是我的红宝石代码:
@result= Model1.joins(:foreign_row).
where(:user_id => user_id).
order(:datetime).
reverse_order.
select('table1.*, foreign_row.*').
maximum(:datetime, :group => :foreign_row_id).
它只给了我一条记录,没有按 id 分组并加入:{"1":"2013-05-02T17:36:53+09:00"}
。我应该在我的代码中更改什么以获取所有行?