我怎样才能做一个左外连接使用Rails的ActiveRecord? [英] How can I do a LEFT OUTER JOIN using Rails ActiveRecord?

查看:266
本文介绍了我怎样才能做一个左外连接使用Rails的ActiveRecord?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我没有任何想法。你能不能给我任何的线索(如参考站点)。任何帮助将AP preciated。

I don't have any ideas. Could you give me any clues (like reference sites). Any help will be appreciated.

Model1: GROUP(id, name)
Model2: USER_GROUP_CMB(id, user_id, group_id)

预计SQL语句:

Expected SQL statement:

SELECT * 
FROM groups AS g LEFT OUTER JOIN user_group_cmbs AS cmb 
            ON g.id = cmb.group_id
WHERE cmb.user_id = 1

我试图建立协会下面,但我不知道以后该做的事。

I tried to set up associations below but I dont know what to do after this.

class Group < ActiveRecord::Base
  has_many :user_group_cmb
end

class UserGroupCmb < ActiveRecord::Base
  has_many :group
end

Rails的版本:3.1.1

Rails Version: 3.1.1

推荐答案

我相信一个包括将使用 LEFT OUTER JOIN 查询,如果你做一个条件在桌子上的包括的关联用途:

I believe an includes will use a LEFT OUTER JOIN query if you do a condition on the table that the includes association uses:

Group.includes(:user_group_cmb).where("user_group_cmbs.user_id = ?", 1)

这篇关于我怎样才能做一个左外连接使用Rails的ActiveRecord?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆