Сравнивание столбцов в sqlite python
Есть таблица sqlite, в ней есть два столбца, которые содержат списки гостей. По большей части они идентичны, но есть небольшие различия, которые мне нужно достать
Столбец 1(NAME): Вова Вася Петя Коля Саша Наташа Даша
Столбец 2(NAME2): Вова Вася Петя Коля Саша
Вывод, который нужно получить: Наташа и Даша не придут.
Ответы (2 шт):
Автор решения: Namerek
→ Ссылка
create table IF NOT EXISTS friends
(
name text primary key,
lives_in_city text
);
create table IF NOT EXISTS party_guests
(
guest_name text
constraint party_guests_pk
primary key
references friends
on update cascade on delete cascade,
chair_num int
);
insert into friends
values ('Вова', 'Волгоград'),
('Вася', 'Симферополь'),
('Петя', 'Дмитров'),
('Коля', 'Владивосток'),
('Саша', 'Москва'),
('Наташа', 'Сочи'),
('Даша', 'Иркутск') on conflict do nothing ;
insert into party_guests (guest_name, chair_num)
select name, row_number() over (partition by true)
from friends
where lives_in_city not in ('Иркутск', 'Сочи');
;
select name from friends where not exists(
select 1 from party_guests where party_guests.guest_name = friends.name
)
Автор решения: Алексей Р
→ Ссылка
Используйте оператор EXCEPT
SQL-запрос
SELECT name
FROM guests
EXCEPT
SELECT name2
FROM guests;
Таблица guests
name name2
Саша Саша
Петя Петя
Коля Коля
Вова Вова
Вася Вася
Наташа
Даша
Результат
name
Даша
Наташа