私はレールに取り組んでいます。
私の必要は、
@accountUrl = Account.find_by_id(current_account_id)
@details = Detail.find_by_acc_id(@accountUrl.id)
上記の例から内部結合クエリを作成する方法
誰でもできます。
私はレールに取り組んでいます。
私の必要は、
@accountUrl = Account.find_by_id(current_account_id)
@details = Detail.find_by_acc_id(@accountUrl.id)
上記の例から内部結合クエリを作成する方法
誰でもできます。
この単純なケースでは、Rails は結合を使用せず、「コード内」で結合します。
Account.includes(:details).where(:id => current_account_id).first
2 つの個別のクエリが作成されます。
選択の条件が必要な場合は、「手動で」(またはスコープを介して)参加する必要があります
Account.joins(:details).where("details.name" => selected_detail).first
これにより、INNER JOIN が作成され、条件を満たすアカウントのみが返されます。
model A
has_many :bs
model B
has_many :cs
モデルAでは、あなたは書くことができます
has_many :cs, :through => :bs #uses inner join to fetch the records.
http://guides.rubyonrails.org/active_record_querying.htmlとhttp://asciicasts.com/episodes/215-advanced-queries-in-rails-3をチェックしてください
Rails docの Rails Example では INNER JOIN がデフォルトです
User.joins(:posts)
=> SELECT "users".* FROM "users" INNER JOIN "posts" ON "posts"."user_id" = "users"."id"
あなたの場合、それは次のようになります:
Account.joins(:details)
.where(id: current_account_id)