我有两个数据库,一个数据库(游戏)包含 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
不能同时是 homeID
和 visitorId
(好吧,除非一个团队自己玩),这就是为什么您的查询返回 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/