72 похожих чатов

Всем привет! Не могу понять как работает WHERE в связке с

NOT EXIST

Вот есть такой запрос

SELECT *
FROM clients c
WHERE NOT EXISTS (
SELECT 1
FROM orders o
WHERE o.client_id = c.id
)

Сначала мы выполняем подзапрос, который выбирает всех клиентов, у которых есть хотя бы один заказ:

SELECT 1
FROM orders o
WHERE o.client_id = c.id

Вот мы получили эту подзапросную выборку, что происходит дальше?

База данных пробегает по каждой записи из таблицы clients и сравнивает с подзапросной выборкой? А что она конкретно сравнивает? "Она сравнивает строки". Какие строки? Наверное же ячейки сравнивает или как это работает. Вот на этом моменте не понимаю

Допустим такой запрос

SELECT *
FROM orders o
WHERE o.client_id = 5

Тут я понимаю, база данных пробегает по каждой записи из таблицы orders и просто смотрит ячейку client_id, а равна ли она 5? Если равна то берёт в итоговую выборку

А в случае с EXIST какие она ячейки сравнивает?

2 ответов

8 просмотров

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

Roman-Salnikov Автор вопроса

Похожие вопросы

Обсуждают сегодня

Какого хера? /Sources/App/Modules/User/Models/UserLinkApple.swift:21:20: warning: stored property '_id' of 'Sendable'-conforming class 'UserLinkApple' is mutable @ID(...
Alexander Sherbakov
14
Приветствую всех, возникла проблема, до этого писал бота в простом формате где при выполнении условий приходило через send_message информация, сейчас решил добавить хендлер на...
Andrew
4
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
У тебя в конфиге нигде нет deny all; или вообще любого deny?
Alexander Sherbakov
10
Ребят, привет. У кого-то есть опыт заказа мерча в сторе? Есть успешные кейсы? Чёт у меня турецкую карту не принимает
Vladimir F.
7
Портфолио: Зовут меня Александр, мне 41 год. Город Киров. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github.co...
Magic
11
Приветствую всех, есть вопросик. Передали проект на OctoberCms, без инсталяшки в полуразвернутом виде, нужно было залить бекап бд, после залития бд, оказалось, что части строк...
Лео
14
Всем привет. Есть кто разбирается в платежках? Что б принимать из других стран и выплачивать рф снг
Musa
6
Ребят, а больше никто поработать не хочет? Кто свободен?
AIZ
4
где собака, админ группы? нычкуется и боится проявить волю, в толерантность еще не наигрался? @yelizariev
Ognezar
61
Карта сайта