Rails选择不同

lam*_*rin 4 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> ]`
Run Code Online (Sandbox Code Playgroud)

但是我想和title_id一起获取Book的id

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

谢谢

key*_*one 11

使用分组:

Book.where(:user_id => @user.id).grouped('title_id')
Run Code Online (Sandbox Code Playgroud)

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

Book...select('books.*, GROUP_CONCAT(id) as ids')
Run Code Online (Sandbox Code Playgroud)

这样你就可以拥有ids每个组的book 属性