2012-02-22 2 views
0

PHPmyadmin을 통해 MySql에서 쿼리하는 방법에 대한 질문이 있습니다. 여러 테이블이 포함 된 데이터베이스가 있습니다. 이 테이블들 중 하나는 스포츠 게임의 경기 정보를 포함합니다. 이 "게임"테이블에는 "gameid", "pouleid", "hometeamnumber", "awayteamnumber", "gamedate"열이 있습니다.SQL 쿼리 - 다른 검색 쿼리를 결합하는 방법

그런 다음 팀 데이터가 저장되는 다른 테이블 "팀"이 있습니다. 이 테이블에는 "teamnumber", "clubname", "teamname"의 세 열만 있습니다.

이제이 데이터베이스에 대해 sql-query를 만들고 싶습니다. 결과에서 "gameid", "homeclubname", "hometeamname", "awayclubname", "awayteamname"및 "gamedate"를 표시하려고합니다. homeclubname과 hometeamname을 얻으려면 Game 테이블에서 "hometeamnumber"를 가져 와서 "Team"테이블의 "teamnumber"와 비교해야합니다. awayclubname과 awayteamname도 마찬가지입니다.

그러나 나는 내 쿼리에서 homeclub/team 또는 awayclub/team 만 관리 할 수 ​​있습니다. 따라서 다음 SQL 문을 사용합니다.

“SELECT gameid, pouleid, hometeamnumber, clubname, teamname, awayteamnumber, gamedate 
FROM Game, Team 
WHERE Game.hometeamnumber = Team.teamnumber” 

그러나 이것은 homeclubname과 hometeamname 만 제공합니다. 이상적으로 나는 멀리 클럽 이름과 어웨이 이름도 원할 것이다. 그러나이 정보를 얻으려면 나는 팀 테이블을 봐야 할 것입니다. 다음 쿼리는 분명히 작동하지 않습니다.

“SELECT gameid, pouleid, hometeamnumber, clubname, teamname, awayteamnumber, gamedate 
FROM Game, Team 
WHERE Game.hometeamnumber = Team.teamnumber 
AND Game.awayteamnumber = Team.teamnumber” 

하나의 SQL 쿼리에서 어떻게 수행 할 수 있습니까?

+1

'AND'를 (를) 'OR'로 변경하십시오. – ManseUK

+0

OR로 변경하면 집과 부재 중 팀이 필요하기 때문에 작동하지 않습니다. JOIN을 사용하는 것이 올바른 해결책입니다. –

답변

0
정보를 표시 할 때

특정 게임 당신이 만들 수있는 변화의 다양한가 생산 작업에 따라

SELECT 
    Team.* 
FROM Game 
INNER JOIN Team 
ON Team.teamnumber IN (Game.hometeamnumber,Game.awayteamnumber) 
WHERE Game.gameid = 123 

내에서 두 팀의 팀 데이터를 얻을 것이다 다음은, 위에서 언급 한 적합 할 것 하나의 게임에 대해서. 큰 결과 표를 표시하려는 경우 사용할 수있는 다른 방법이 있으므로 추가 정보가 필요하면 질문을 명확히하십시오.

0

조인을 사용하여 원하는 데이터를 반환 할 수 있어야합니다.

이 그냥 빨리 같은 제안 째려 : 당신은 편집 할 수 있어야한다

SELECT gameid, pouleid, 
hometeamnumber, #HomeTeam.clubname as HomeTeamClubName, #HomeTeam.teamname as HomeTeamName, 
awayteamnumber, #AwayTeam.clubname as AwayTeamClubName, #AwayTeam.teamname as AwayTeamName, 
gamedate 
FROM Game 
INNER JOIN Team as #HomeTeam 
on hometeamnumber = #HomeTeam.teamnumber 
INNER JOIN Team as #AwayTeam 
on awayteamnumber = #AwayTeam.teamnumber 

를/사용자의 특정 요구에 대해이 향상됩니다.

관련 문제