php - SQL JOIN——两个团队,一个标识数据库

标签 php mysql sql join

我有两个数据库,一个数据库(游戏)包含 hometeamID 和 visitorID。另一个数据库(团队)包含所有 Logo 名称和团队 ID。 (Games) hometeamID 和 visitorID 通过 teamID 与 (Teams) 关联。

我想运行一个 SQl 查询,从(游戏)数据库中输出球队,但也显示每个球队的标志。我希望输出看起来像这样。

<item>
     <hometeamID>
     <home_logo>
     <visitID>
     <visitor_logo>
</item>

当尝试使用 PHP 进行查询时,我使用

SELECT *
FROM Games LEFT JOIN
     Teams
     on Games.homeID = Teams.teamID

我可以很好地获得主队的第一个 Logo ,但是当我使用 AND 时

SELECT *
FROM Games LEFT JOIN
     Teams
     on Games.homeID = Teams.teamID and Games.vistorID = Teams.teamID

我一无所获。

我能够使查询正常工作,但我没有得到 Logo 。

最佳答案

您需要两个连接。显然,Teams.teamId 不能同时是 homeIDvisitorId(好吧,除非一个团队自己玩),这就是为什么您的查询返回 no行。

因此,使用两个连接而不是一个连接:

SELECT g.homeId, h.logo as home_logo,
       g.vistorId, v.logo as visitor_logo
FROM Games g LEFT JOIN
     Teams h
     ON g.homeID = h.teamID LEFT JOIN
     Teams v
     ON g.vistorID = v.teamID;

关于php - SQL JOIN——两个团队,一个标识数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38569845/

相关文章:

javascript - ajax调用后无法使用jquery解析json

php - 在 Wordpress 网站之前添加一个简单的 HTML 登陆页面

php - 如何在没有小部件工厂的情况下为 Yii2 中的 GridView 设置默认配置?

PHP 表单未发布到 MySQL 数据库

SQL Server 2008 区分大小写的唯一列

php - cron 作业命令中的权限被拒绝

php - 插入包含撇号(单引号)的数据时出现 MySQL 错误?

php getaddrinfo 失败 : "A non-recoverable error occurred during a database lookup."

sql - 如何根据 SQL Server 2005 中的条件返回值集?

php - 不同行的MySQL总和