首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Rails ActiveRecord :使用左连接而不是内连接进行连接

Rails ActiveRecord :使用左连接而不是内连接进行连接
EN

Stack Overflow用户
提问于 2009-10-02 14:00:16
回答 2查看 73K关注 0票数 75

我有这个代码

代码语言:javascript
复制
User.find(:all, :limit => 10, :joins => :user_points,
                :select => "users.*, count(user_points.id)", :group =>
                "user_points.user_id")

它会生成以下sql

代码语言:javascript
复制
SELECT users.*, count(user_points.id) 
FROM `users` 
INNER JOIN `user_points` 
ON user_points.user_id = users.id 
GROUP BY user_points.user_id 
LIMIT 10

除了User.find_by_sql和手动输入查询之外,有没有可能使用左连接而不是内连接?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-10-02 14:20:10

你可以试试这个

代码语言:javascript
复制
User.find(:all, limit: 10,
            joins:  "LEFT JOIN `user_points` ON user_points.user_id = users.id" ,
            select: "users.*, count(user_points.id)", 
            group:  "user_points.user_id")
票数 85
EN

Stack Overflow用户

发布于 2017-12-09 15:19:29

Rails5有一个left_outer_joins方法。所以你可以这样做

代码语言:javascript
复制
User.left_outer_joins(:user_points)

或使用别名

代码语言:javascript
复制
User.left_joins(:user_points)
票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1509692

复制
相关文章

相似问题

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