2012-11-07 3 views
0

다음 요청에 대해 SQL 문을 쓰는 데 문제가 있습니다. "영화에서 작동하고 해당 영화를 다시 만들 때 액터를 찾습니다".SQL 선택 문

세 개의 테이블이 '영화', '리메이크'와 '캐스트'입니다 필름은 속성 : filmid, filmname, 올해 리메이크 속성 이사 : filmid, 제목, 연도, priorfilm, priortitle, prioryear이 속성 캐스트 : filmid, filmname, 배우

지금까지 나는 priorfilm 속성이 나는이 시작 그래서 테스트중인 필름의 filmid과 일치한다는 것을 알고

select actor 
from casts, remakes, actors 
where casts.filmid = remakes.priorfilm 

하지만 내가 진행하는 방법을 단서가 없다 이. 지정한 세 zyou 아니었다 당신의 SQL,에서 '배우'테이블 ...

시도했다으로

+0

3 개의 테이블이있는 경우 3 개의 테이블을 모두 연결해야합니다. 여기서 casts.filmid = remakes.priorfilm AND remakes.x = films.y – Vucko

답변

2

그것은 조금 혼란이었다

select c.actor 
from casts c, 
join films f on c.filmid = f.filmid 
join remakes r on r.priorfilm = f.filmid 
join casts c2 on c.actor = c2.actor and r.filmid = c2.filmid 

참고를 캐스트 테이블을 두 번 결합해야합니다.