如何编写关联两张表的SQL查询?附数据库结构与预期结果
解决方案
假设你的数据库包含以下两张核心表:
teams:存储球队信息,字段包括team_id(主键)、team_name(球队名称)matches:存储比赛数据,字段包括home_team_id(主队ID)、away_team_id(客队ID)、home_score(主队得分)、away_score(客队得分)、match_date(比赛日期)
对应的SQL查询语句如下:
SELECT t_home.team_name AS `Home`, t_away.team_name AS `Away`, m.home_score AS `Score home`, m.away_score AS `Score away`, m.match_date AS `Date` FROM matches m INNER JOIN teams t_home ON m.home_team_id = t_home.team_id INNER JOIN teams t_away ON m.away_team_id = t_away.team_id ORDER BY m.match_date DESC;
说明
- 两次
INNER JOIN分别关联比赛表和球队表,通过球队ID匹配出对应的主队、客队名称 - 用
AS关键字给查询结果的字段重命名,完全匹配你需要的输出列名 ORDER BY m.match_date DESC用于按比赛日期倒序排列,和你给出的预期结果顺序一致
如果你的实际表名、字段名和假设的有差异,只需要替换语句中对应的名称即可。
内容的提问来源于stack exchange,提问作者TomTom
相关产品推荐
相关产品推荐

