2

「users」と「lms_users」の2つのテーブルがあります

class LmsUser
    belongs_to :user
end

class User
    has_one :lms_user
end

私が書くとき、それは内部結合User.all(:joins => :lms_user)でテーブルを結合します。

左結合が必要です。この動作をどのように変更できますか?(SQLコマンドは使用せず、Ruby構文のみを使用します。)

どうすればこれを処理できますか?

4

3 に答える 3

0

:joins => "LEFT JOIN lms_users ON lms_users.user_id = users.id"

于 2012-09-19T14:04:40.107 に答える
0

を使用して、SQLなしでLEFT JOINを実行できますが、結合されたテーブルの列を含む追加の制約(または単に句)をincludes指定した場合に限ります。orderそれで、

User.includes(:lms_user).all

LEFT JOINは生成されません(代わりに2つの個別のクエリが生成されます)が、

User.includes(:lms_user).where(:lms_user => {:role => 'admin'}).all

だろう。

これについての詳細

于 2012-09-19T17:45:57.990 に答える
0

User.left_outer_joins(:lms_user)Rails5+を使用している場合

于 2020-11-03T14:59:30.850 に答える