반응형
아래 mysql 쿼리를 rails activerecord에 어떻게 작성합니까?
select
A.*,
B.*
from
raga_contest_applicants_songs AS A
join
raga_contest_applicants AS B
ON B.contest_applicant_id = A.contest_applicant_id
join
raga_contest_rounds AS C
ON C.contest_cat_id = B.contest_cat_id
WHERE
C.contest_cat_id = contest_cat_id
GROUP BY
C.contest_cat_id
두 테이블에 조인을 작성하는 방법을 알고 있습니다. 그러나 3 테이블에서 조인을 사용하는 방법에 대해 확신이 없습니다.
해결 방법
질문에서 얻은 SQL 쿼리를 다시 작성하려면 다음과 같아야한다고 생각합니다 (모델 관계를 완전히 시각화하는 데 어려움을 겪고 있으므로 약간의 추측입니다).
RagaContextApplicantsSong.
joins(:raga_contest_applicants => [:raga_content_rounds], :contest_cat).
group('raga_contest_rounds.contest_cat_id')
... joins
메서드가 두 조인과 WHERE
절을 모두 처리하고 마지막으로 group
호출이 이어집니다. .
참고 :
Post.joins(:category, :comments)
Returns all posts that have a category and at least one comment
중첩 테이블을 조인하는 경우 해시처럼 나열 할 수 있습니다.
Post.joins(:comments => :guest)
Returns all comments made by a guest
중첩 된 연결, 다중 수준 :
Category.joins(:posts => [{:comments => :guest}, :tags])
Returns all posts with their comments where the post has at least one comment made by a guest
다음과 같이 ActiveRecord 쿼리 인터페이스 호출을 연결할 수도 있습니다.
Post.joins(:category, :comments)
...produces the same SQL as...
Post.joins(:category).joins(:comments)
Client.joins('LEFT OUTER JOIN addresses ON addresses.client_id = clients.id')
=> SELECT clients.* FROM clients LEFT OUTER JOIN addresses ON addresses.client_id = clients.id
참조 페이지 https://stackoverflow.com/questions/16131201
반응형
'MySql' 카테고리의 다른 글
MySQL cc1 : 오류 : Mac 10.7.5에 python-mysql을 설치할 때 인식 할 수없는 명령 줄 옵션 "-Wno-null-conversion" (0) | 2021.01.03 |
---|---|
MySQL Workbench가 데이터베이스 서버에 연결할 수 없음 (0) | 2021.01.03 |
MySQL Node.js 및 mysql 콜백 : 쿼리 콜백의 쿼리 (0) | 2021.01.03 |
MySQL 루프없이 키로 다차원 배열의 값 합계 (0) | 2021.01.03 |
MySQL 데이터베이스에서 PHP 테이블로 특정 데이터를 가져 오는 방법은 무엇입니까? (0) | 2021.01.02 |
댓글