gpt4 book ai didi

MySQL,在同一查询中两次使用连接表

转载 作者:行者123 更新时间:2023-11-29 21:39:53 25 4
gpt4 key购买 nike

我正在尝试编写一个 MySQL 查询,将同一个表中的两列连接到另一个表中。我查看了很多例子并尝试了很多事情,其中​​大多数只是由于这样或那样的原因而出错。

我有一个 Teams 表:

 ID | Team
1 | Team 1
2 | Team 2
3 | Team 3
4 | Team 4

我有一张游戏 table :

 ID | Team_1 | Team_2
1 | 1 | 2
2 | 2 | 3
3 | 3 | 4
4 | 4 | 1

我有以下查询:

SELECT PIO.Games.id
, Team.Name AS `Team-1`
, Team.Name AS `Team-2`
FROM Games
left
JOIN Team
ON Games.Team_1 = Team.id
left
JOIN Team as T2
ON Games.Team_2 = Team.id

我需要列出游戏并显示团队名称,我希望:

Game_ID   Team-1     Team-2
1 | Team 1 | Team 2
2 | Team 2 | Team 3
3 | Team 3 | Team 4
4 | Team 4 | Team 1

但是我两次进入第一队:

 Game_ID |  Team-1  |   Team-2
1 | Team 1 | Team 1
2 | Team 2 | Team 2
3 | Team 3 | Team 3
4 | Team 4 | Team 4

到目前为止,我已经花了几个小时来解决这个问题,但没有想出任何有效的办法!我认为我缺少的东西非常简单。

我已经在 Navicat 和 SequelPro 的 MAMP 中的 mySQL 数据库上尝试过这些解决方案。

有人有什么想法吗?非常感谢所有帮助。

最佳答案

使用您创建的别名。这将允许您加入团队表两次,但不会混淆数据库引擎。

    SELECT g.id, t.Name AS Team-1, t2.Name AS Team-2
FROM Games AS g
LEFT JOIN Teams AS t ON g.Team_1 = t.ID
LEFT JOIN Teams AS t2 ON g.Team_2 = t2.ID

关于MySQL,在同一查询中两次使用连接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34622870/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com