SQL 在查询结果中替换另一个表中的多个变量

Posted

技术标签:

【中文标题】SQL 在查询结果中替换另一个表中的多个变量【英文标题】:SQL Replace multiple variables from another table in query result 【发布时间】:2014-08-18 14:07:17 【问题描述】:

我有一个如下所示的团队日程表:

DBO.SCHEDULE

Game1_Time  |  Game1_Home_Team   | Game1_Away_Team 
===================================================
12:00:00    |         1          |         2

我想用另一个表中存在的相应团队替换团队值:

DBO.TEAM

Team_Number  |  Team_Name
========================
    1        |  The Monsters
    2        |  Bug Bites

尝试这样做: 如何在查询结果中将 Schedule 中的 1 和 2 替换为“The Monsters”和“Bug Bites”?

Game1_Time  |  Home Team         | Away Team 
===================================================
12:00:00    |  The Monsters      |  Bug Bites

【问题讨论】:

JOIN 我很难在一行中加入两个值。 您可以使用别名多次连接表。 【参考方案1】:

基本上只需做两个连接,一个用于主场名称,一个用于客场名称。

SELECT 
     s.Game1_Time, 
     t.Team_Name as 'Home Team', 
     t1.Team_Name as 'Away Team'
FROM `SCHEDULE` s
JOIN `TEAM` t on t.Team_Number = s.Game1_Home_Team
JOIN `TEAM` t1 on t1.Team_Number = s.Game1_Away_Team

我添加了反引号,因为 schedule 是一个关键字,所以为了不搞乱你应该在表名上使用反引号

DEMO

【讨论】:

以上是关于SQL 在查询结果中替换另一个表中的多个变量的主要内容,如果未能解决你的问题,请参考以下文章

从结果表中多选到oracle中的单行

如何把查询一个数据库表中的查询结果插入到另一个数据库表中(高分!)

怎样一个表中的2个查询结果合并到一个表中的两列

Mysql中查询一个表,把结果中的NULL替换成0,请写出sql语句

SQL中,如何将三个表中同一字段中的内容汇总到一个字段中?

在线等。。。。SQL中如何将一个表中的某一列的数据替换到另一个表中的某一列里。