我有 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/