0

我应该做一个查询,从那些不在它结束的同一个城市开始的表中选择“netapa”表的id,它应该只显示“1、2、4、6”但是我没有了解如何,我有以下值以及我所做的查询

桌子

create table etapa
(
  netapa int not null,
  km     int,
  salida varchar(20),
  llegada varchar(20),
  dorsal int,
  constraint PK_etapa Primary Key(netapa),
  constraint etapa_ciclista Foreign Key (dorsal) references ciclista(dorsal) on delete cascade on update cascade

);

价值观

insert into etapa values(1,35,'Valladolid','Ávila',1);
insert into etapa values(2,70,'Salamanca','Zamora',2);
insert into etapa values(3,150,'Zamora','Almendralejo',1);
insert into etapa values(4,330,'Córdoba','Granada',1);
insert into etapa values(5,150,'Granada','Almerìa',3);
insert into etapa values(6,150, 'Aragon','Aragon',1);

询问

select distinct netapa
from etapa
where llegada not like salida ;

但是,它向我展示了除了在同一数据行中的同一个城市开始和结束的所有内容,我如何比较不同的数据行?谢谢!

4

1 回答 1

0

请参阅以下查询,它可以帮助您实现您真正想要的:

SELECT
     e1.netapa
FROM etapa e1
     LEFT JOIN etapa e2 ON e1.netapa = (e2.netapa+1)
WHERE e1.salida <> e2.llegada OR e2.netapa IS NULL
ORDER BY e1.netapa

在此处查看演示

于 2020-03-11T14:31:41.023 回答