programing

다대다로 질문하는 방법?

css3 2023. 10. 27. 22:04

다대다로 질문하는 방법?

저는 루비 온 레일 튜토리얼을 보다가 다음 테이블 구조를 발견했습니다.

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