首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >select distinct returns nil (globalize3)

select distinct returns nil (globalize3)
EN

Stack Overflow用户
提问于 2011-07-19 21:03:09
回答 1查看 231关注 0票数 1

Post.find(:all, :select => "DISTINCT author")

返回

[#<Post author: nil>, #<Post author: nil>, #<Post author: nil>, #<Post author: nil>, #<Post author: nil>]

但是,SQL request SELECT DISTINCT author FROM posts;的工作方式与预期一致。

我使用的是globalize3。Post.select('DISTINCT author').with_translations('en')返回所有记录。

这是它的日志:

代码语言:javascript
复制
Post Load (0.5ms)  SELECT "posts"."id" AS t0_r0, "posts"."description" AS t0_r1, "posts"."position" AS t0_r2, "posts"."created_at" AS t0_r3, "posts"."updated_at" AS t0_r4, "posts"."date" 
AS t0_r5, "post_translations"."id" AS t1_r0, "post_translations"."post_id" AS t1_r1, "post_translations"."locale" AS t1_r2, "post_translations"."author" 
AS t1_r3, "post_translations"."description" AS t1_r4, "post_translations"."created_at" AS t1_r5, "post_translations"."updated_at" 
AS t1_r6 FROM "posts" LEFT OUTER JOIN "post_translations" ON "post_translations"."post_id" = "posts"."id" WHERE "post_translations"."locale" = 'en' 
AND (post_translations.author IS NOT NULL)

如何只选择不同的值?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-20 01:26:39

可能是这样简单的:

代码语言:javascript
复制
Post.find(:all, :group => author)

更新:

看起来postgres比mysql更兼容一些,所以可以试试这个:

代码语言:javascript
复制
Post.select("DISTINCT ON (author) *")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6747602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档