从连接的MySQL数据库中选择2列

Lee*_*ice 1 mysql sql

我有以下表格:

小组

+------+--------------+--------------+
| id   |  team_name   |  team_code   |
+------+--------------+--------------+
|  1   |  Wales       | WAL          |
|  2   |  England     | ENG          |
|  3   |  New Zealand | NZL          |
+------+--------------+--------------+
Run Code Online (Sandbox Code Playgroud)

火柴

+------+-----------+-----------+
| id   |  team_a   |  team_b   |
+------+-----------+-----------+
|  1   |  WAL      | ENG       |
|  2   |  ENG      | NZL       |
|  3   |  WAL      | NZL       |
+------+-----------+-----------+
Run Code Online (Sandbox Code Playgroud)

我知道联接是如何工作的,但我无法理解如何通过从数据库Matched.id中获取BOTH团队的团队名称来Teams查询数据库.让我解释一下

  • 对于每场比赛,我需要确定球队名称
  • 我会查询 Matches.id
  • 所以对于Match:1我需要选择'Wales'和'England'

希望我已经清楚地解释了我的问题,但如果我没有请随意提出更多问题

Ode*_*ded 6

数据库结构似乎对我"不合适".

你应该有两个team_a,并team_b外键Teams表的主键.

然后,您可以加入ID(两次)以获取全名.

比赛:

+------+-----------+-----------+
| id   |  team_a   |  team_b   |
+------+-----------+-----------+
|  1   |  1        | 2         |
|  2   |  2        | 3         |
|  3   |  1        | 3         |
+------+-----------+-----------+

SELECT T1.team_name, T2.team_name
FROM Matches M
  INNER JOIN Teams T1
    ON M.team_a = T1.id
  INNER JOIN Teams T2
    ON M.team_b = T2.id
WHERE M.id = 1
Run Code Online (Sandbox Code Playgroud)