각 테이블의 데이터에 액세스하기 위해 3 개의 테이블을 조인하려고합니다. 이 경우 메인 테이블은 Stats 테이블이 될 것입니다. 따라서 NextOpponent를 얻으려면 Players 테이블에 액세스해야하며, NextOpponent에서 계산을 실행하려면 Defense 테이블에 액세스해야합니다. 모든 아이디어는 이들 중 3 가지를 모두 달성해야합니다.MySQL을 통해 3 개의 테이블 가입
현재 SQL 문 : (현재 중복을 인쇄의 끝없는 루프)
$query="SELECT * FROM Stats
INNER JOIN Defense ON Stats.Team = Defense.Team
INNER JOIN Players ON Defense.Team = Players.team";
여기 내 데이터베이스 구조입니다.
Players
-PID (Primary)
-Name
-NextOpponent
Stats
-PID (Primary)
-Name
-Touchdowns
-Receptions
-etc....
Defense
-Team (Unique)
-Points
그래서 내 의도 된 출력은 다음과 같습니다
Chris Johnson
Next Opponent: IND
Defense Points: 100
업데이트 : 지금은 방어 포인트를 에코 그러나 실제로 플레이어가있는 팀 방어의 포인트를 반환 필드에 액세스 할 수 있습니다 그들의 다음 상대는 방어 포인트가 아닙니다. 이처럼
이 도움말은 반복 문제를 해결했습니다. 그러나 완전한 대답은 아닙니다. – jsheffers
이것을 시도하십시오 :'SELECT * FROM 통계 s 조인 플레이어 p ON p.id = s.id JOIN 방어 d ON d.team = p.NextOpponent GROUP BY p.id; ' – Horen
이것은 귀하의 도움에 감사드립니다. 'SELECT * FROM Stats s JOIN 플레이어 p p.PID = s.PID JOIN 국방 d ON d.Team = p.upcoming GROUP BY p.PID' 귀하의 답을 추가 할 수 있습니까? – jsheffers