2013-06-15 1 views
1

에 가입하세요. 같은 영화의 모든 배우를 표시하지만, 그것은 단지 하나 개의 행을 표시해야SQL 내가 2 개 테이블이 문 리턴에만 fisrt 행

INSERT INTO ACTOR VALUES (1, 'Bill', 'Clinton'); 

INSERT INTO ACTOR VALUES (2, 'Monika', 'Lewinsky'); 
. 
. 
. 

INSERT INTO SHOW VALUES (1, 'Rambo', to_date('20.06.2012', 'DD.MM.YYYY'), '20:00 - 21:30', 1); 

INSERT INTO SHOW VALUES (2, 'Rambo', to_date('20.06.2012', 'DD.MM.YYYY'), '20:00 - 21:30', 2); 
. 
. 
. 

그리고 지금 내 SQL 파일 (빌 클린턴 람보) :

내 삽입 SQL 파일의 일부

select actor.name, actor.surname, show.name 

from actor 

inner join show 

on actor.id_actor = show.id_show 

where show.name = 'Rambo'; 

출력 :

NAME   SURNAME   NAME            
--------------------------------------- 
Bill   Clinton   Rambo           

그럼 Monika Lewinsky는 어디에 있나요?

+1

그것은 좋아 보인다 그런데 왜 actor.id_actor = show.id_show해야합니까? 그것 actor 아닌가요? id_actor = show.fk_id_actor? –

+1

위의 행 결과에 영향을주지 않아야하지만, 왜'id_actor = id_show'가 아닌'id_actor = fk_id_actor'에 참여하고 있습니까? –

답변

1

당신은

inner join show 

on actor.id_actor = show.fk_id_actor 
+1

OP의 조인이 잘못되었지만 위의 내용이 실제 일 경우 실제로 2 행을 반환합니다. 즉,'actor '의 ids 1,2는 여전히'show'의 ids'1,2'에 조인됩니다. 2 행이 다시 올 것입니다. –

+0

나는 actor.id_actor = show.fk_id_actor를 수행하면 반환 값이 공백 (비어 있음)이기 때문에 추측하여이 작업을 수행했습니다 (actor.id_actor = show.id_show). – Iposify

+1

테이블 값을 다시 확인하십시오. 'fk_id_actor'의 요점은 그 레코드를 액터 테이블에 연관시키는 것입니다. 또한 @Prix에 동의합니다. 일반적으로 조인 테이블이라고하는 세 번째 테이블을 가져야 만 모든 액터를 어떤 쇼에 링크 할 수 있습니다. – radarbob