MySQL - 在单独的列中显示两个内部联接

标签 mysql sql database join inner-join

首先,我有这个返回所有足球比赛的日期

HomeShotsOnTarget(HST) = FullTimeHomeGoals(FTHG)

AwayShotsOnTarget(AST) = FullTimeAWayGoals(FTHG)

SELECT MatchDate, HomeTeam, AwayTeam 
FROM matches 
WHERE HST=FTHG or AST=FTAG

这将显示

MatchDate | HomeTeam | AwayTeam
2003/08/23    17          32
2003/09/13    24          39

等等等等...

HomeTeam 和 AwayTeam 下的数字是 TeamCode,它们位于另一个名为 Clubs 的表中,该表也包含球队的真实姓名。

以下内容将主队的团队代码与 table 上俱乐部的真实姓名相匹配。

SELECT MatchDate, RealName
FROM club T1 
INNER JOIN matches T2 ON T1.TeamCode = T2.HomeTeam

这会显示

MatchDate|  RealName|
2003/08/23  Arsenal
2003/09/13 Blackburn

等等...

所以我的问题是我似乎找不到一种方法来显示主队和客队下的真实姓名而不是团队代码。像这样...

MatchDate | HomeTeam | AwayTeam
2003/08/23   Arsenal   Aston Villa
2003/09/13   Blackburn  Man Utd

最佳答案

也许是这样的:

SELECT MatchDate, homeTeam.RealName AS HomeTeam, awayTeam.RealName AS AwayTeam
FROM matches m
INNER JOIN club homeTeam ON (m.HomeTeam = homeTeam.TeamCode)
INNER JOIN club awayTeam ON (m.AwayTeam = awayTeam.TeamCode);

我过去常常放置一些含义标签,而不仅仅是 T1T2

关于MySQL - 在单独的列中显示两个内部联接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36038086/

相关文章:

php - XMLHttpRequest 中的 UTF-8 字符已损坏

mysql - 在多个模式中更改具有相同名称的表

mysql - 存储过程 VB.NET MYSQL

php - 选择 date=NOW()?

sql - 如何获得 MySQL 数据库的最后访问(和/或写入)时间?

mysql_config_editor --login-path=local 不工作

php - 需要一些帮助在 mysql 中交换两个列值

sql - lucene,还是sql全文?

C# 在 SQL 中编辑行

java - 内部 HSQL 数据库提示特权