将SQL结果转换为Hash

时间:2013-04-14 13:06:03

标签: mysql ruby-on-rails ruby

用于以下SQL查询:

SELECT users.name, posts.title
FROM users
INNER JOIN posts 
ON posts.user_id = users.id

我得到的结果如下所示:

name title
foo  post_a
foo  post_b
foo  post_c
bar  post_d
bar  post_e

但是,我想使用用户名对其进行分组,即通过例如名为'foo'的帖子标题。因此,结果哈希表示应如下所示:

{
  :foo => [ post_a, post_b, post_c ],
  :bar => { post_d, post_e ] 
}

我怎样才能以Ruby的方式做到这一点?

1 个答案:

答案 0 :(得分:1)

查看group_concat函数

SELECT user.name,  GROUP_CONCAT(DISTINCT post.title
                 ORDER BY post.title DESC SEPARATOR ' ') FROM
    user INNER JOIN post ON post.user_id = user.id 

group by user.name