mysql - 选择其他表中具有匹配列的行

标签 mysql sql

我有 3 个表,我想查询它们并根据以下内容获取结果 表 1 团队 ID。

我认为这很简单,但我没能解决这个问题。

我想做的就是让他们从其他表中选择数据并按 TeamID 对它们进行分组。

表的结构如下:

表1 该表按 PersonID 保存团队条目 - 由 PersonID 表引用,每个团队位于一行

[TeamID]  Tournament_id  Person_1_ID   Person_2_ID     Person_3_ID     Country_ID
  ---     ---------      --------        ----------    ---------       --------
  1          77789          123           124              125           90
  2          77789          126           127              128           95
  3          77789          129           130              131            5
        .........

表2 这是人员表 PersonID = 主键

 [PersonID]     Name         Dob             Email           Country_ID
  ---------    -------     --------        ----------        ------------
    123        John      19/03/1992      John@live.com          90
    124        Moe       20/10/1995      Moe@live.com           90
    125        Sami      10/05/1989      Sami@example.com       90
    126        Kim       30/01/1990      Kim@company.com        95
.......

表3 参与表

[ParticipationID]     PersonID      tournament_id          Country_id
 -----------------   ----------     -------------         ------------- 
     9999901            123             77789                  90
     9999902            124             77789                  90
     9999903            125             77789                  90
     9999904            126             77789                  95
     9999905            127             77789                  95 
.......................

如何获得此输出

TeamID     Tournament_Id     Name     Country_ID 
------      -----------     -----     ------    
  1          777789         John         90 
  1          777789         Moe          90
  1          777789         Sami         90 
  2          777789         Kim          95

最佳答案

类似这样的事情:

SELECT t.TeamID
       ,t.Tournament_Id
       ,pr.Name
       ,pr.Country_Id
FROM Team AS t
INNER JOIN Participation AS p ON p.tournament_id = t.Tournament_id
INNER JOIN Person AS pr ON pr.PersonID = p.PersonID
WHERE Tournament_Id = 777789

关于mysql - 选择其他表中具有匹配列的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30014174/

相关文章:

两列中出现的MySQL计数

php - MySQL 到 SQLite 的迁移。我需要更新数据类型吗?

MySQL按特定时间段搜索?

c# - Azure应用程序服务无法连接到通过公共(public)IP公开的本地数据库

android - SQLite 是否保证结果的顺序与表相匹配?

mysql - 为什么 MySQL 对于明确定义的列显示 Unknown column?

mysql - 全文搜索查询mysql

java - 支持部分对象更新的 Java 嵌入式数据库

php - 如何使用 PHP 使用另一个表中的 id 获取一个表的名称

java - 如何通过查询sqlite匹配数字 "start with"