【发布时间】:2013-07-07 00:14:09
【问题描述】:
我正在使用 Retrosheet 棒球逐场比赛数据库来帮助我学习 SQL(使用 mySQL)。它有一个名为 games 的表格,提供有关所有比赛的一般信息:日期、体育场、球队、比分等。它还提供有关球员的信息,如首发投手、阵容、裁判等。但是,所有人都被标记使用 ID。我有一个查找表,它将所有 ID 与名字和姓氏相匹配。
如果我想从匹配特定游戏的游戏数据库中选择 *,但我想从 ID 表中返回名称而不是 ID,有没有办法做到这一点?
更具体地说,假设我想从游戏中选择 game_ID、home_team_id、away_team_id、home_start_pit_id、away_start_pit_id。我想要的是两个投手的真实姓名而不是身份证。
【问题讨论】:
-
你学过表连接吗?如果没有,请阅读此主题。联接是 SQL 的一个基本方面,每个 SQL 教程都涵盖了这些内容。
-
我尝试过join,但不知道如何返回多个名称,下面的答案是我不知道该怎么做。
-
如果你选择 BaseballGame、StartingPlayerName、Team、Position where team ='home' 你会得到 9 行。这就是 SQL 的工作原理。通常将多个玩家放在同一行是表示层的责任。但是在SQL中,可以做到;要在这样的查询中让多个玩家出现在同一行,您必须使用 PIVOT 执行高级 SQL。
标签: mysql