Найти - Пользователи
Полная версия: sqlalchemy найти чего из списка нет в таблице
Начало » Python для экспертов » sqlalchemy найти чего из списка нет в таблице
1
jon34
В БД есть таблица в которой перечислены телефонные номера. Приложение получает небольшой список номеров и нужно найти каких номеров нет в базе.

Я понимаю как проверить каких данных таблицы нет в списке, а как наоборот сделать ума не приложу.

Сейчас пока нахожу, что из списка уже есть в таблице и потом с помощью python нахожу нужное мне, но думается мне, что можно все решить правильным запросом к БД. Помогите пожалуйста, как можно сделать то, что я хочу с помощью sqlalchemy?
P.S бд sqlite
4kpt_IV
Можно поступить проще. Получить все телефонные номера из списка, которые есть в базе. А потом сделать вычисление разности по множествам: из всех телефонов вычесть существующие.
jon34
4kpt_IV
Я знаю о множествах, но что если на пример база очень большая будет? В этом случае все в ОЗУ грузить + делать такой тяжелый запрос не очень хорошо мне кажется, разве не так?
4kpt_IV
Скажем так. Вы не дали исходных условий. Более подробно так.

Вариант A. Если количество номеров для проверки большое очень, тогда можно последовательно пройтись и проверить на exists (самая менее затратная операция).

Вариант B: Если же номеров для проверки не много, то можно просто проверить через in_ и получить все существующие в базе данных номера из проверяемого списка и потом получить те номера, которых в базе нет с использование множеств и начального списка.

jon34
4kpt_IV
Вариант B
Ну сейчас именно так и реализовано это. Просто думал, что есть более оптимальный вариант, по этому задавал вопрос тут.
Спасибо за помощь)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB