다대다로 질문하는 방법?
저는 루비 온 레일 튜토리얼을 보다가 다음 테이블 구조를 발견했습니다.
table actors
id int 11 primary key auto_increment
name varchar 30
table movies
id int 11 primary key auto_increment
name varchar 30
table actors_movies
actor_id int 11
movie_id int 11
배우가 참여하는 영화를 선택하려면 어떻게 쿼리를 해야 합니까?
나는 철도 코드에 루비를 요구하는 것이 아닙니다.실제 mysql 쿼리 문자열을 원합니다.
감사해요!
아마 이런 거겠지.
select m.name
from movies m
inner join actors_movies am on m.id = am.movie_id
inner join actors a on am.actor_id = a.id
where a.name = 'Christopher Walken'
RoR 모델 때문에 작성자 개체를 로드하는 것을 고려해야 합니다. 따라서 ID를 사용하면 충분합니다.
select movies.id, movies.name
from movies inner join actors_movies
on actors_movies.movie_id=movies.id
where actors_movies.actor_id=$actor_id
간단히, 결합된 테이블을 사용하여 동영상/배우 테이블에 연결하면 됩니다.
Select m.name
From actors a
Inner Join actors_movies am On am.actor_id = a.id
Inner Join movies m On m.id = am.movie_id
Where a.name = @your_actor
select m.* from movies m
inner join actors_movies am on am.movie_id = m.id
inner join actors a on a.id = am.actor_id
where a.someField = somevalue
언급URL : https://stackoverflow.com/questions/832584/how-to-query-many-to-many
'programing' 카테고리의 다른 글
Spring ApplicationListener가 이벤트를 수신하지 않습니다. (0) | 2023.10.27 |
---|---|
Woocommerce/Wordpress - 사용자 로그인을 홈페이지로 리디렉션 (0) | 2023.10.27 |
XML 문자열을 개체로 변환 (0) | 2023.10.27 |
"SET FORINE_KEY_CHECKs = 0;" Oracle Equivalent (0) | 2023.10.27 |
Oracle JDBC 및 Oracle CHAR 데이터 유형 (0) | 2023.10.27 |