我正在try 学习如何将一个表中的多个列连接到另一个表中的单个列.

This is my table structure in its simplest form:

团队

id | team_name |
1  |   teamA   |
2  |   teamB   |
3  |   teamC   |
4  |   teamD   |

贸易

id |  team_1 (FK to 团队.id)  |  team_2 (FK to 团队.id)  |
1  |            1              |              2            |
2  |            3              |              4            |

This is my current SQL which joins 贸易.team_1 to 团队.id:

SELECT 团队.team_name AS team1, 团队.team_name AS team2, 贸易.team_1, 贸易.team_2
FROM 团队
JOIN 贸易 ON (贸易.team_1 = 团队.id);

My question is, how do I create a second join that also joins 贸易.team_2 to 贸易.id?

This would mean both 贸易.team_1 AND 贸易.team_2 would be joined to 贸易.id

The results I want to get back would be:

team1  |  team2  |  team_1  |  team_2  |
teamA  |  teamB  |    1     |     2    |
teamC  |  teamD  |    3     |     4    |

推荐答案

这样地:

select t1.team_name as team1, t2.team_name as team2, t.team_1, t.team_2
from trades t
inner join teams t1 on t1.id = t.team_1
inner join teams t2 on t2.id = t.team_2;

Database相关问答推荐

删除Postgres中的JSONB列并在不停机的情况下回收空间

实体关系图. IS A 关系如何转换为table表?

时间数据库设计,有一个转折(live vs draft rows)

如何更改 Heroku 中的列类型?

如何连接到 MDF 数据库文件?

SOA 和共享数据库

如何使用 PHP 代码将图像上传到 MySQL 数据库

对于 Postgres (Windows),有没有像 TOAD 一样好的东西?

MySQL:LAST_INSERT_ID() 返回 0

在 Firestore 中使用嵌套的单个查询

维护 mgo 会话的最佳实践

postgreSQL 同时将列类型从 int 更改为 bigint

Twisted + SQLAlchemy 和最好的方法

MySQL 从一个数据库插入另一个数据库

For循环或数据库调用哪个更好?

使用 PHP/MySQL 导入 CSV 数据

将 NULL 插入 MySQL 时间戳

带数据库的Electron 应用程序

使用 oracle sql developer 从一个数据库复制到另一个数据库 - 连接失败

数据库与纯文本