关于#sql#的问题,如何解决?

img


这道题目要怎么做?
分配对战场次,相同地区战队进行一次对战,不同赛区分主客场两次对战,用一条 sql 语句列 出对战场次

这就一个自关联笛卡尔积的灵活运用

create table test_team_20220225(id varchar2(10),team varchar2(20),area varchar2(1));
insert into test_team_20220225 values('01','RNG','E');
insert into test_team_20220225 values('02','EDG','E');
insert into test_team_20220225 values('03','QG','E');
insert into test_team_20220225 values('04','GK','W');
insert into test_team_20220225 values('05','JC','W');
insert into test_team_20220225 values('06','XQ','W');

select '区内赛' 比赛阶段, a.team 主场, b.team 客场
  from test_team_20220225 a, test_team_20220225 b
 where a.area = b.area --同区
   and a.id > b.id --相同两队只比赛一次,换成小于也行
UNION ALL
select '跨区赛' 比赛阶段, a.team 主场, b.team 客场
  from test_team_20220225 a, test_team_20220225 b
 where a.area <> b.area --不同区的队伍任意组合

img