sql - PL/SQL 试图将 tableID 显示为另一个表名称
问题描述
我正在制作一个 NHL oracle sql 数据库。我正在尝试创建一个 SELECT 查询,它显示来自游戏表的 homeTeam,但显示来自团队表的 teamName。本质上,我希望输出为“SELECT hometeam, homecore, awayteam, awayscore”,但我不想显示 teamID,而是希望在 homeTeam 和 awayTeam 列中看到 teamNames。我相信这可以通过加入来完成,只是无法让它工作。
create table team (
teamID number(2,0) not null,
teamAbb varchar2(3),
teamName varchar2(20),
location varchar2(20),
division varchar2(20),
conference varchar2(20),
constraint pk_team primary key (teamID)
);
create table game(
gameID number(2,0) not null,
gameDate date,
homeTeam number(2,0),
homeScore number(2,0),
awayTeam number(2,0),
awayScore number(2,0),
constraint pk_game primary key (gameID),
constraint fk_homeTeam foreign key (homeTeam) references team (teamID),
constraint fk_awayTeam foreign key (awayTeam) references team (teamID)
);
插入这些
DECLARE
BEGIN
insert into team values(10, 'ANA', 'Ducks', 'Anaheim', 'Pacific', 'Western');
insert into team values(11, 'ARI', 'Coyotes', 'Arizona', 'Pacific', 'Western');
insert into team values(12, 'BOS', 'Bruins ', 'Boston', 'Atlantic', 'Eastern');
insert into team values(13, 'BUF', 'Sabers ', 'Buffalo', 'Atlantic', 'Eastern');
COMMIT;
END;
DECLARE
BEGIN
insert into game values (1, to_date('01-11-2020','mm-dd-yyyy'), 10, 2, 11, 1);
insert into game values (2, to_date('01-13-2020','mm-dd-yyyy'), 11, 5, 12, 6);
insert into game values (3, to_date('03-04-2020','mm-dd-yyyy'), 10, null, 13, null);
COMMIT;
END;
解决方案
您将必须与团队表执行 2 次连接
询问
select t1.teamName AS HomeTeam, g.homeScore, t2.teamName AS AwayTeam, g.awayScore
from game g
inner join team t1 ON t1.teamID = g.homeTeam
inner join team t2 ON t2.teamID = g.awayTeam
结果
HomeTeam HomeScore AwayTeam AwayScore
---------------------------------------------
Ducks 2 Coyotes 1
Coyotes 5 Bruins 6
Ducks NULL Sabers NULL
推荐阅读
- c++ - 跳到 -(连字符),并存储名称
- php - 如何根据控制器中索引函数中的变量显示我的部分?
- java - Bug 跟踪应用程序的 OOPS 数据库设计帮助
- python - Python更改全局代理设置
- scala - 类路径中缺少符号“term org.apache.spark.annotation”(spark kubernetes)
- javascript - 回到已经访问过的页面后更改一些 css 属性
- html - h3 具有滚动行为
- python - python 无法使用 docker 映像在 azure app 服务中加载 en_core_web_lg 模块
- css - 可以写“grid-template-columns: 1fr;”吗?如果我在小窗口尺寸上只有一列?
- c# - RepositoryItemComboBox 为每一行添加特定项目