Сравнивание столбцов в sqlite python

Рейтинг: 0Ответов: 2Опубликовано: 15.01.2023

Есть таблица sqlite, в ней есть два столбца, которые содержат списки гостей. По большей части они идентичны, но есть небольшие различия, которые мне нужно достать

Столбец 1(NAME): Вова Вася Петя Коля Саша Наташа Даша

Столбец 2(NAME2): Вова Вася Петя Коля Саша

Вывод, который нужно получить: Наташа и Даша не придут.

Ответы

▲ 0Принят

Используйте оператор EXCEPT

SQL-запрос

SELECT name
  FROM guests
EXCEPT
SELECT name2
  FROM guests;

Таблица guests

name    name2
Саша    Саша
Петя    Петя
Коля    Коля
Вова    Вова
Вася    Вася
Наташа  
Даша    

Результат

name
Даша
Наташа
▲ 0
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
    )