Как бы я получил правильный результат в этом запросе? - PullRequest
0 голосов
/ 11 марта 2020

Я должен сделать запрос, который выбирает «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 ;

Однако он показывает мне все, кроме того, который начинается и заканчивается sh в том же городе в той же строке данных, как я могу сравнить отдельные строки данных? Спасибо!

1 Ответ

0 голосов
/ 11 марта 2020

См. Следующий запрос, он может помочь вам достичь того, что вы точно хотите:

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

СМОТРИТЕ ДЕМО ЗДЕСЬ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...