[RUBY-ON-RAILS] LEFT OUTER 레일에 조인 3
RUBY-ON-RAILSLEFT OUTER 레일에 조인 3
나는 다음과 같은 코드가 있습니다 :
@posts = Post.joins(:user).joins(:blog).select
이는 모든 게시물을 찾아 그들과 관련된 사용자와 블로그를 반환하기위한 것입니다. 많은 레코드를 반환하지 않습니다 생성 조인 그러나, 사용자들은 내부가 가입한다는 수단 선택 사항입니다.
어떻게 LEFT OUTER 대신 가입 생성이 사용합니까?
해결법
-
==============================
1.
@posts = Post.joins("LEFT OUTER JOIN users ON users.id = posts.user_id"). joins(:blog).select
-
==============================
2.당신은 레일 가이드에 설명이 포함이 함께 할 수있는 :
당신은 레일 가이드에 설명이 포함이 함께 할 수있는 :
Post.includes(:comments).where(comments: {visible: true})
결과 :
SELECT "posts"."id" AS t0_r0, ... "comments"."updated_at" AS t1_r5 FROM "posts" LEFT OUTER JOIN "comments" ON "comments"."post_id" = "posts"."id" WHERE (comments.visible = 1)
-
==============================
3.나는 squeel 보석의 큰 팬입니다 :
나는 squeel 보석의 큰 팬입니다 :
Post.joins{user.outer}.joins{blog}
그것은 둘 다 내부를 지원하고 외부는 다형성 belongs_to 관계에 대한 클래스 / 유형을 지정하는 기능뿐만 아니라, 결합한다.
-
==============================
4.사용 eager_load :
사용 eager_load :
@posts = Post.eager_load(:user)
-
==============================
5.기본적으로 당신은 내부 조인 수행, 액티브 :: 자료 # 명명 된 연결을 조인 통과 할 때. 당신은 당신의 왼쪽 외부 조인을 나타내는 문자열을 전달해야합니다.
기본적으로 당신은 내부 조인 수행, 액티브 :: 자료 # 명명 된 연결을 조인 통과 할 때. 당신은 당신의 왼쪽 외부 조인을 나타내는 문자열을 전달해야합니다.
문서에서 :
-
==============================
6.액티브의 left_outer_joins 방법이있다. 이처럼 사용할 수 있습니다 :
액티브의 left_outer_joins 방법이있다. 이처럼 사용할 수 있습니다 :
@posts = Post.left_outer_joins(:user).joins(:blog).select
-
==============================
7.좋은 소식은, 지금 5 레일 왼쪽 외부 조인을 지원합니다. 귀하의 질의는 지금과 같을 것이다 :
좋은 소식은, 지금 5 레일 왼쪽 외부 조인을 지원합니다. 귀하의 질의는 지금과 같을 것이다 :
@posts = Post.left_outer_joins(:user, :blog)
-
==============================
8.
class User < ActiveRecord::Base has_many :friends, :foreign_key=>"u_from",:class_name=>"Friend" end class Friend < ActiveRecord::Base belongs_to :user end friends = user.friends.where(:u_req_status=>2).joins("LEFT OUTER JOIN users ON users.u_id = friends.u_to").select("friend_id,u_from,u_to,u_first_name,u_last_name,u_email,u_fbid,u_twtid,u_picture_url,u_quote")
from https://stackoverflow.com/questions/3245201/left-outer-joins-in-rails-3 by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] jQuery를 : 어떻게하는 동안 문서의 제목을 변경하는 .ready ()? (0) | 2020.02.11 |
---|---|
[RUBY-ON-RAILS] 3 레일 : alias_method_chain 아직 사용? (0) | 2020.02.11 |
[RUBY-ON-RAILS] 3 모델없이 사용자 정의 SQL 쿼리를 실행 레일 (0) | 2020.02.11 |
[RUBY-ON-RAILS] 포맷 날짜를 레일 (0) | 2020.02.11 |
[RUBY-ON-RAILS] 컨트롤러에서 다른 컨트롤러 액션을 호출 난간 (0) | 2020.02.11 |