Плюс Вам, за сравнение производительности. А можно пруфы на устаревшие и не рекомендуются к использованию? @Akina справедливо отметил, что на мелких датасетах вариант имеет право на жизнь. И на выборках порядка 10^3 разница в скорости будет незаметна, зато, запрос выглядит лаконичнее.
А почему не включили в сравнение боле очевидный и подходящий для такой задачи инструмент, как intersect/except?
Все VIP'ы:
select customer_id from customers
intersect
select customer_id from vip_customers;
Все не VIP'ы:
select customer_id from customers
except
select customer_id from vip_customers;
Кто хоть раз что-то купил:
select customer_id from customers
intersect
select customer_id from transactions;
Кто ничего не покупал:
select customer_id from customers
except
select customer_id from transactions;
И ещё - по логике, customer_id в таблице VIP'ов уникален (и вообще, должен быть FK и PK). А раз так, то никакой подзапрос, тем более с distinct'ом, для join'а не нужен.
Это только интерфейсы. А в качестве реализации Вы предлагаете использовать что?
Если правильно понял Ваш вопрос, то вообще никаких проблем:
~/.ssh/configПлюс Вам, за сравнение производительности.
А можно пруфы на
устаревшиеине рекомендуются к использованию?@Akina справедливо отметил, что на мелких датасетах вариант имеет право на жизнь.
И на выборках порядка 10^3 разница в скорости будет незаметна, зато, запрос выглядит лаконичнее.
А почему не включили в сравнение боле очевидный и подходящий для такой задачи инструмент, как intersect/except?
Все VIP'ы:
Все не VIP'ы:
Кто хоть раз что-то купил:
Кто ничего не покупал:
И ещё - по логике, customer_id в таблице VIP'ов уникален (и вообще, должен быть FK и PK). А раз так, то никакой подзапрос, тем более с distinct'ом, для join'а не нужен.