2012-02-22 77 views
0

我有一個關於通過PHPmyadmin在MySql中查詢的問題。我有一個包含幾個表的數據庫。其中一張表包含體育比賽的比賽信息。這個「遊戲」表具有「gameid」,「pouleid」,「hometeamnumber」,「awayteamnumber」,「gamedate」列。SQL查詢 - 如何組合不同的搜索查詢

然後我有另一個表「團隊」,在其中存儲teamdata。此表只有三列:「隊伍編號」,「俱樂部名稱」,「隊名」。

現在我想對這個數據庫做一個sql查詢。在結果中,我想顯示「gameid」,「homeclubname」,「hometeamname」,「awayclubname」,「awayteamname」和「gamedate」。要獲得homeclubname和hometeamname,我需要從遊戲桌獲取「家庭遊戲編號」,並將其與「團隊」表中的「團隊編號」進行比較。 awayclubname和awayteamname也是一樣。

但我只能設法在我的查詢中獲得主場/球隊或者客場/球隊。因此,我使用以下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 2012-02-22 16:05:33

+0

更改爲OR將無法正常工作,因爲我需要主客場球隊。使用JOIN是正確的解決方案。 – 2012-02-23 11:04:33

回答

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 

你應該能夠編輯/改善這爲您的特定需求。