2014-02-10 11 views
1

그래서이 단어를 올바르게 사용하여 설명하는 방법을 모르므로 제가하려는 것을 설명 할 것입니다. 저는 두 개의 테이블을 포함하는 데이터베이스를 만들었습니다. 하나는 1-30의 목록 옆에 기본 키가있는 NBA 팀 목록입니다. 다른 테이블에는 Team1, Team2 및 Winner 열이 포함 된 게임 일정이 나열되어 있으며이 행은 모두 외래 키입니다 (따라서 1-30 사이의 숫자 임). 나는 스케줄 테이블에서 모든 사람을 취하는 쿼리를 작성하려고하지만 외래 키에서 1-30의 숫자를받는 대신 실제 팀 이름을 갖고 싶습니다. 테이블에서 여러 개의 외래 키를 사용하여 하나의 기본 키를 선택하십시오.

SELECT schedule.Date, schedule.GameTime, TEAMS.Team_name, TEAMS.Team_name, schedule.Team1_score, schedule.Team2_score, TEAMS.Team_name as Winner 
FROM schedule 
left join TEAMS on schedule.Team1 = TEAMS.Team_key 

내가 지금까지 쓴하지만 난 다른 팀의 이름을 얻기 위해, 또는 schedule.Winner = Teams.Team_key을 비교하기 위해 schedule.Team2 = TEAMS.Team_key을 비교하는 방법을 모르는 것입니다 승자의 이름을 얻기 위해

그래서 예를 들어 지금 내가 가진 :

날짜 시간 Team1 사의 Team2 심박 측정기 Team1Score Team2Score 수상작

....... ........ 레이커스 레이커스 ...... ............. .................... 레이커스

대신에 내가 원하는 것 :

날짜 시간 팀 1 팀 2 팀 1 점수 팀 2 점수 우승자

....... ......... 레이커스 셀틱스 ...................... 셀틱스

고마워.

답변

0

글쎄, 당신은 세 개의 외래 키, 그래서 다음과 같이 할 수있다 :

SELECT t1.team_name AS team_one, 
    t2.team_name AS team_two, 
    t3.team_name AS winner FROM schedule s 
INNER JOIN teams t1 ON s.team1 = t1.team_key 
INNER JOIN teams t2 ON s.team2 = t2.team_key 
INNER JOIN teams t3 ON s.winner = t3.team_key 

당신은 3 다른 별명과 같은 테이블에 조인해야합니다.

+0

오우 알겠습니다. 정말 고마워. –

관련 문제