Rails选择不同

时间:2011-07-11 12:02:35

标签: ruby-on-rails

在一个场景中我想要检索具有不同值的记录,所以我使用了不同的

  

Book.where([“user_id =?”,@ user_id])。select('distinct title_id')

`this, only retrives the records like this [#<Book title_id: 30>, #<Book title_id: 31> ]`

但我想获取Book的id以及title_id

所以,请告诉我如何处理这个

感谢

1 个答案:

答案 0 :(得分:11)

使用分组:

Book.where(:user_id => @user.id).grouped('title_id')

问题在于,如果您进行分组,则不能使用不同的书籍ID,它们都会分组为单行。您可以使用GROUP_CONCAT来解决:

Book...select('books.*, GROUP_CONCAT(id) as ids')

通过这种方式,您可以为每个群组设置书籍ids