首页 > 解决方案 > MYSQL - 单个查询中的多个连接

问题描述

我有一个包含名称和 ID 的表:

Id  surname given
1   John    Doe
2   Fred    Smith
3   James   White
4   Dick    Jones

我有另一个表将这些组合为团队:

Team   Mem1  Mem2
A       1     2
B       3     4
C       1     4

有没有办法在单个查询中连接名称以获取团队和名称列表?

结果将是:

A   John Doe    Fred Smith
B   James White Dick Jones
C   John Doe    Dick Jones

标签: mysqlsqljoin

解决方案


您可以加入两次:

select 
    t.id,
    concat(n1.surname, ' ', n1.given) name1,
    concat(n2.surname, ' ', n2.given) name2
from teams t
inner join names n1 on n1.id = t.mem1
inner join names n2 on n2.id = t.mem2

如果缺少名称,您可以使用left joins 代替inner joins。


推荐阅读