我必须对SQL进行练习,我有两个表:
create table REPRESENTA (
cod_pais1 varchar (5),
cod_pais2 varchar (5),
primary key(cod_pais1,cod_pais2));
insert into representa values('p002','p003');
insert into representa values('p001','p004');
create table PAIS(
Cod_pais varchar (5)primary key unique,
nombre varchar (25) not null,
continente varchar (25)not null,
clubes numeric (9));
insert into pais values('p001','rusia','europa','10');
insert into pais values('p002','francia','europa','3');
insert into pais values('p003','guayana francesa','america','1');
insert into pais values('p004','uzbekistan','asia','8');
insert into pais values('p005','nigeria','africa','14');
我必须进行咨询,以显示REPRESENTA表,但使用与PAIS表相关的名称。教授不允许使用子选择。
我试过
select pais.nombre as A, pais.nombre as B from pais join representa R on
pais.Cod_pais=representa.cod_pais1 join representa on
pais.Cod_pais= representa.cod_pais2;
但如果我两次使用同一个表,则会出错。
答案 0 :(得分:0)
我认为您正在寻找类似下面的内容。
select p1.nombre as a, p2.nombre as b
from representa R
join PAIS p1
on p1.Cod_pais = R.cod_pais1
join PAIS p2
on p2.cod_pais = R.cod_pais2
这里的想法是,如果您想在表nombre
中显示彼此关联的representa
,则需要将表PAIS
两次加入表representa
;与nombre
相关联的cod_pais1
的1次和与nombre
相关联的cod_pais2
的第2次。
<强>结果:强>
+---------+------------------+
| a | b |
+---------+------------------+
| francia | guayana francesa |
| rusia | uzbekistan |
+---------+------------------+
<强> DEMO 强>