【问题标题】:Mysql Query - JOIN statementMysql 查询 - JOIN 语句
【发布时间】:2014-08-24 10:46:50
【问题描述】:

我有两个表需要查询:

Fixtures
-----------
fixture_id
hometeam_id
awayteam_id
fixture_date


Teams
-----------
team_id
team_name

我需要从 hometeam_idawayteam_id 中提取团队名称,我可以使用左连接或内连接语句获取一个,但不知道如何在不使用子语句的情况下获取两者。

SELECT t.team_name,f.away_teamid,f.home_teamid 
FROM fixtures f
LEFT JOIN teams t 
ON (t.team_id = f.hometeam_id)

总结一下,我需要每场比赛中球队的两个名字

提前致谢

【问题讨论】:

  • 检查我们的 SQL 联合运算符或进行另一个联接
  • 查看示例demo here

标签: mysql sql left-join inner-join


【解决方案1】:

加入球队表两次以获得主队和客队的名称,如果您的夹具表必须包含主队和客队的关联但如果主队或客队都可以为空,则使用内连接

SELECT 
f.fixture_id,
t.team_name home_team,
t1.team_name away_team,
f.fixture_date
from fixtures f 
join teams t on (t.team_id = f.hometeam_id)
join teams t1 on (t1.team_id = f.away_teamid)

【讨论】:

    【解决方案2】:
    SELECT home.team_name AS Home, away.team_name AS Away FROM Fixtures fix
    INNER JOIN Teams away on away.team_id = fix.awayteam_id
    INNER JOIN Teams home on home.team_id = fix.hometeam_id
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-13
      • 2016-09-13
      • 1970-01-01
      • 2011-09-01
      • 1970-01-01
      • 2017-12-06
      相关资源
      最近更新 更多