SQL连接 - 一列用作另一个表中两列的ID

时间:2013-11-20 03:59:32

标签: mysql sql database database-design

好吧,也许我对这背后的思考过程非常愚蠢,我需要把它放在我的位置,或者我也不远了。

我有一个名为TEAMS的表,有两列:teamID和teamName。然后,我有另一个名为WEEK12的表,其中包含三列:gameID,homeID和awayID。

我想也许我可以在home ID和awayID列中使用teamID作为WEEK12表,然后将其与TEAMS表连接起来,将这两列与团队名称相匹配。不幸的是,我没有运气。我可以加入并获得团队名称以匹配homeID或awayID,但我不能同时做到这两点。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

SELECT w.gameID,
       h.teamName AS 'Home Team',
       a.teamName AS 'Away Team' 
FROM WEEK12 AS w 
     LEFT JOIN TEAMS AS h 
               ON w.homeID=h.teamID 
     LEFT JOIN TEAMS AS a 
               ON w.awayID=a.teamID

答案 1 :(得分:0)

您应该能够在同一查询中两次加入同一个表。性能命中(查找的两倍),但它应该可以工作。

SELECT home.teamName as homeTeam, away.teamName as awayTeam, week.gameID
FROM week12 week
INNER JOIN teams home ON week.homeID = home.teamID
INNER JOIN teams away ON week.awayID = away.teamID