2017-06-17 107 views
0

我正在爲我的聯盟製作一個壘球賽程表。我有一張TEAMS表和一張GAMES表。 TEAMS是id & team_name。 GAMES表具有日期,時間,home_team(涉及TEAMS表id)和away_team(涉及TEAMS表id)。mysql加入2張桌子 - 但必須加入同一張桌子兩次

我想從GAMES表中選擇所有遊戲,但不是home_team和away_team顯示團隊的ID,我希望它顯示TEAMS表中的team_name。

這裏是我的查詢,但也有問題......

SELECT games.date, games.time, games.home_team, 
games.away_team, teams.team_name FROM games JOIN teams ON games.home_team=teams.id 
JOIN teams on games.away_team=teams.team; 

1066 - 不是唯一的表/別名:團隊

回答

0

是的,因爲你將不得不提供不同的表別名,因爲你加入同一個表兩次就像

SELECT games.date, games.time, 
t.team_name as home_team, 
t1.team_name as away_team 
FROM games g 
LEFT JOIN teams t ON g.home_team=t.id 
LEFT JOIN teams t1 on g.away_team=t1.team 
+0

這裏是結果...不完全是我所需要的,但我認爲我越來越接近..我希望我可以告訴你一個結果的屏幕截圖,但我得到了所有的日期,時間,home_teams(仍然只顯示id),away_teams(仍然只是顯示id),然後是team表中的team_name,其中有1個球隊名稱,這是home_teams的實際名稱。 –

+0

@BretWilliams,請參閱編輯回答如果有幫助 – Rahul

+0

這裏是你可以找到結果的實際屏幕截圖。 [鏈接](http://bjwtech.com/Capture.PNG) –

0

你需要使用t能夠別名。所以,你將有這樣的事情:

SELECT games.date, games.time, games.home_team, games.away_team, teams1.team_name 
FROM games 
    JOIN teams AS teams1 ON games.home_team=teams1.id 
    JOIN teams AS teams2 ON games.away_team=teams2.team; 
+0

您的查詢返回了0行... –

+0

這是完全不相關的問題。你的問題是關於重複使用多個連接中的同一張表,這就是你如何做到的。它與嘗試執行查詢無關,因爲您的表的內容不會產生任何結果。 –

+0

我做了三個屏幕剪輯 - [小組](http://bjwtech.com/teams.PNG) - 我的小組表中有什麼。 [遊戲](http://bjwtech.com/games.PNG) - 我的遊戲桌上有什麼,然後在這裏是我想要返回的一個例子(我剛拍攝它)[desired_results](http://bjwtech.com /desired.png)。我是新來的,我只是想學習一些後端,所以我可以嘗試在我的工作中填補一個空缺的位置 –

0

哇噢我知道了!!!!!這裏需要列別名和表別名!!!!!!我不相信我做到了!

SELECT g.day,g.date,g.time,t.team_name AS AWAY_TEAM,t2.team_name AS HOME_TEAM FROM GAMES AS克 JOIN TEAMS AS T ON = AWAY_TEAM t.id JOIN TEAMS爲t2 ON home_team = t2.id