gpt4 book ai didi

mysql - 将两个 SELECT 语句连接到一个表中

转载 作者:搜寻专家 更新时间:2023-10-30 22:13:10 26 4
gpt4 key购买 nike

我试图将两个单独的 SQL 语句的输出合并到一个表中。我在一个数据库中有一个带有关联 ID 的团队名称列表,在另一个数据库中有一个匹配列表。例如

Teams    
-----------------
id name
1 Arsenal
2 Aston Villa

Matches
--------------------------------
id home_team_id away_team_id
1 1 2

在matches数据库中,home_team_id和away_team_id是teams数据库中id的外键。我想要做的是输出匹配 ID 以及与匹配数据库中的 ID 关联的团队名称。预期输出:

match_id        home_team_name      away_team_name
---------------------------------------------------
1 Arsenal Aston Villa

我现在有两个选择语句。

SELECT match_id, name as home_team_name
FROM matches, teams
WHERE home_team_id = id;

SELECT match_id, name as away_team_name
FROM matches, teams
WHERE away_team_id = id;

第一个 select 语句输出比赛 ID 和主队名称,第二个输出比赛 ID 和客队名称。

有什么方法可以用我当前的数据库设计实现所需的输出吗?

最佳答案

你可以这样做:

SELECT m.id, t1.name as home_team_name, t2.name as away_team_name
FROM `match` m
INNER JOIN teams t1 ON t1.id = m.home_team_id
INNER JOIN teams t2 ON t2.id = m.away_team_id

这两次加入了带有团队表的匹配表,以获取两个团队的名称。

sqlfiddle demo

请注意,我正在转义 `match`,因为它是一个 reserved word

关于mysql - 将两个 SELECT 语句连接到一个表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20077175/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com