MySQL数据获取

标签 mysql

我无法理解如何从 MySQL 获取数据。答案可能很简单,但我被困住了,无法通过互联网找到任何帮助......

我有三个表,假设第一个表名为系列,第二个表名为团队,第三个表为 id games。 表结构是这样的:

series:
id
name

teams:
id
name

games:
series_id (relates to series.id)
hometeam_id (relates to teams.id)
visitorteam_id (relates to teams.id)

所以我的问题是从游戏中获取行,其中这些 id 需要是名称,而不是 id...

Result should be something like this:
"championship
wolverines
marines"

not like
"1
45
142"

目前,我正在将这些系列和球队表获取到 hashref(在 Perl 中)并从那里获取 id。但必须有更有效的方法在一个 SQL 查询而不是三个查询中完成此操作。

最佳答案

您需要加入球队表两次(一次为主队,第二次为客队)

SELECT g.*,h.name as hometeam_name,v.name as visitorteam_name FROM games g
  INNER JOIN series s ON g.series_id=s.id
  INNER JOIN teams h ON g.hometeam_id=h.id
  INNER JOIN teams v ON g.visitorteam_id=v.id

关于MySQL数据获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11173381/

相关文章:

mysql 1-​​abs(sign(x)) 范式

javascript - 使用 php mysql 以表单形式检索 onchange 事件的搜索结果

php - PHP 中的 PDO 类

mysql - 如何获得不重复的用户总数?

mysql - Insert ... on duplicate key update nothing 使用MySQL

MySQL SQL命令从一个具有三个相同列的表查询到另一个表

python - Django:实现多个用户级别/角色/类型

mysql - 如何在电脑启动时自动打开MYSQL?或者有可以下载的软件吗?

要格式化的 SQL 列

WHERE 子句中的 MYSQL MIN