내가 농구 리그 테이블 AF 팀의 테이블이 같은 선수의 테이블이 있습니다행 재정의없이 JOIN 후 SQL : GROUP BY?
LEAGUES
ID | NAME |
------------------
1 | NBA |
2 | ABA |
TEAMS:
ID | NAME | LEAGUE_ID
------------------------------
20 | BULLS | 1
21 | KNICKS | 2
PLAYERS:
ID | TEAM_ID | FIRST_NAME | LAST_NAME |
---------------------------------------------
1 | 21 | John | Starks |
2 | 21 | Patrick | Ewing |
리그 ID 감안할를, 나는 모든에서 모든 선수의 이름과 자신의 팀 ID를 검색하고 싶습니다
SELECT t.id AS team_id, p.id AS player_id, p.first_name, p.last_name
FROM teams AS t
JOIN players AS p ON p.team_id = t.id
WHERE t.league_id = 1
반환 : 그 리그에서 팀은, 그래서 나는 이렇게
[0] => stdClass Object
(
[team_id] => 21
[player_id] => 1
[first_name] => John
[last_name] => Starks
)
[1] => stdClass Object
(
[team_id] => 21
[player_id] => 2
[first_name] => Patrick
[last_name] => Ewing
)
+ around 500 more objects...
나는 저를 드롭 다운을 채울이 결과를 사용하기 때문에 각 팀의 선수 목록이 포함 된 각 팀마다 팀 ID로 결과를 그룹화하고 싶습니다. 따라서이 드롭 다운을 만드는 루프는 매번 500 명이 넘는 모든 선수 대신 각 팀 ID를 순환해야합니다.
하지만이 같은 GROUP BY를 사용하는 경우 :
에만 있기 때문에 같은 열 이름의 사용 같은 팀에있는 모든 다른 플레이어를 오버라이드 (override)과 같은 각 팀에서 한 선수를 반환SELECT t.id AS team_id, p.id AS player_id, p.first_name, p.last_name
FROM teams AS t
JOIN players AS p ON p.team_id = t.id
WHERE t.league_id = 1
GROUP BY t.id
.
[0] => stdClass Object
(
[team_id] => 21
[player_id] => 2
[first_name] => Patrick
[last_name] => Ewing
)
[1] => stdClass Object
(
[team_id] => 22
[player_id] => 31
[first_name] => Shawn
[last_name] => Kemp
)
etc...
나는 이런 식으로 뭔가를 반환하고 싶습니다 :
[0] => stdClass Object
(
[team_id] => 2
[player_id1] => 1
[first_name1] => John
[last_name1] => Starks
[player_id2] => 2
[first_name2] => Patrick
[last_name2] => Ewing
+10 more players from this team...
)
+25 more teams...
는 것이 가능 어떻게 든 있습니까?
사용하는 데이터베이스를 지정하십시오! – ppeterka
sql result는 1 차원 배열 만 반환합니다. 그것은 귀하의 코드에 전달되어야합니다. –
죄송합니다. MySQL을 사용하고 있습니다. – acrmuui