MySQL,如何从第一个表中选择一行,从第二个表中选择两行

MySQL,如何从第一个表中选择一行,从第二个表中选择两行,mysql,select,Mysql,Select,我需要从第一个表中选择一行,从第二个表中选择两行,它们对应于第一个表的结果。我可以用例子更清楚地解释它 如下所示,我有两个表。表“游戏”中有关于团队之间游戏的信息(例如,第1场游戏由第10队和第11队进行)。在第二个表中,我只列出了团队的名称。问题是如何使用一个Select从第二个表中获取关于游戏的信息和球队名称 e、 g.我想了解玩NR3游戏的人以及球队名称。结果应该是: id = 3, team_nr1 = 14, team_nr2 = 15, team1_name = eee, team2

我需要从第一个表中选择一行,从第二个表中选择两行,它们对应于第一个表的结果。我可以用例子更清楚地解释它

如下所示,我有两个表。表“游戏”中有关于团队之间游戏的信息(例如,第1场游戏由第10队和第11队进行)。在第二个表中,我只列出了团队的名称。问题是如何使用一个Select从第二个表中获取关于游戏的信息和球队名称

e、 g.我想了解玩NR3游戏的人以及球队名称。结果应该是:

id = 3, team_nr1 = 14, team_nr2 = 15, team1_name = eee, team2_name = fff
有可能吗

Table: Games
________________________
id  team_nr1    team_nr2
1   10          11
2   12          13
3   14          15

Table: Teams
________________________
team_id team_name
10      aaa
11      bbb
12      ccc
13      ddd
14      eee
15      fff
谢谢你的建议。

你可以试试:-

SELECT ID,
       TEAM_NR1,
       TEAN_NR2,
       (SELECT TEAM_NAME
            FROM TEAMS
            WHERE TEAMS.TEAM_ID = GAMES.TEAM_NR1) AS TEAM1_NAME,
       (SELECT TEAM_NAME
            FROM TEAMS
            WHERE TEAMS.TEAM_ID = GAMES.TEAM_NR2) AS TEAM2_NAME
    FROM GAMES
    WHERE GAMES.ID = 3;

子查询选择所需的团队名称并命名它们出现的“列”。

如果您只想有一行包含所有值,我唯一能做的就是使用函数。我不建议在内联查询和子查询中使用,因为如果没有找到记录,它将产生mysql错误

我想你应该使用连接。它可能是这样的:

SELECT G.id, G.team_nr1, G.team_nr2,
       T1.team_name AS team1_name, T2.team_name AS team2_name
FROM Games G
LEFT JOIN Teams T1 ON (G.team_nr1 = T1.team_id)
LEFT JOIN Teams T2 ON (G.team_nr2 = T2.team_id)
WHERE G.id = 3
还有其他类型的联接
LEFT JOIN
表示列出所有游戏,即使在
T1
T2
中没有匹配的团队