나는 아직도 SQL을 배우고 있으며, 나의 두뇌는 이걸 가지고 힘든 시간을 보내고있다. 내 링크 테이블Select * from many to many SQL 관계
나는 각 팀 및 그들에 선수를 얻을 수있는 쿼리를 실행하고 싶은 모든 같은
teams
players
및 teams_players
:
SELECT *
FROM teams
INNER JOIN teams_players
ON teams.id = teams_players.team_id
INNER JOIN players
ON teams_players.player_id = players.id
을하지만 각 팀에 각 선수에 대한 별도의 행을 반환했습니다. JOIN이 올바른 방법으로 참여하고 있습니까? 아니면 내가 다른 것을해야합니까?
----------------------------------------- 편집
좋아, 내가 듣고있는 것부터, 반드시 그렇게하는 것은 나쁜 방법은 아니다. 내가 루프를 수행하는 동안 팀별 데이터를 그룹화해야합니다.
아직 수정 된 SQL 문을 제공하지는 않았지만, 오늘은 답변을 드리겠습니다.
구조에 대한 질문에 대답하려면 - 나는 내 혼란을 가져 오는 부분의 일부인 반환 된 행 구조에 대해 생각하지 않았다고 생각합니다. 다음과 같이이 특별한 경우, 각 팀은 4 플레이어 (또는 이하)로 제한 내가 나에게 도움이 될 것 구조를 추측입니다 :
teams.id, teams.name, players.id, players.name, players.id, players.name, players.id, players.name, players.id, players.name,
1 Team ABC 1 Jim 2 Bob 3 Ned 4 Roy
2 Team XYZ 2 Bob 3 Ned 5 Ralph 6 Tom
가 당신의 SQL을 편집 도움이 될 수 있습니다 방법에 대한
한 행에 팀의 선수 목록
을 원하는 마음에 들지 않으면 화면에서 더 쉽게 읽을 수 있습니다. –
이것은 예상되는 동작처럼 보입니다. 기대하는 결과 열의 예를 들어 줄 수 있습니까? 팀과 모든 플레이어를 결과 집합의 행으로 반환하는 방법을 알지 못합니다. –
특정 팀에 대한 결과를 원하면 결과를 특정 팀으로 제한하는 WHERE 절을 추가해야합니다. 오,'SELECT *'는 대부분의 DBA의 눈살을 찌푸리게합니다. 따라서 원하는 컬럼을 지정해야합니다. –