mysql - SQL 两行合一

标签 mysql sql

我的sql数据库如下所示:

表匹配:

id     | homeTeamId | guestTeamId
------ | ---------- | ----------
1      | 1          | 2
------ | ---------- | ----------
2      | 13         | 9

表团队:

id     | Name 
------ | ------ 
1      | Arsenal London      
------ | ------ 
2      | Manchester City     
------ | ------ 
9      | Tottenham    
------ | ------ 
13     | Aston Villa      

现在我想做一个查询,返回与我的团队名称匹配的所有匹配项。 我的输出应该如下所示:

id     | homeTeamId | guestTeamId | hometeam       | guestteam
------ | ---------- | ----------- | ---------------| ---------
1      | 1          | 2           | Arsenal London | Manchester City
------ | ---------- | ----------- | ---------------| ---------
2      | 13         | 9           | Aston Villa    | Tottenham

那么,我该怎么做呢?我尝试了很多内部联接、左联接、分组依据……但问题是,我需要在一个表上进行两个联接,并为同一列提供一个别名。

最佳答案

有多种方法可以做到这一点。这是使用多个连接的一个:

select m.id, m.hometeamid, m.guestteamid, t1.name hometeam, t2.name guestteam
from match m 
    join team t1 on m.hometeamid = t1.id
    join team t2 on m.guestteamid = t2.id

关于mysql - SQL 两行合一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38688683/

相关文章:

mysql - 为每个外键返回一行的查询

php - Symfony2 : does fetch ="EAGER" create a join?

java - sql查询中的排序

mysql - Rails/mysql SUM 不同记录 - 优化

php - 一对多和一对多关系 laravel

mysql - 添加额外字段以防止需要连接

php - MySQL数据对比

sql - 我如何在表之间复制数据 PostgreSQL

sql - 选择另一个表的最小行

sql - 带有字符串文字的 Postgresql COALESCE 不能按预期工作