Напишите SQL-запрос: есть таблица клиентов (clients) и таблица черного списка (blacklist) с полем id. Нужно выбрать всех клиентов, которых нет в черном списке. Предложите несколько вариантов решения

Для выбора клиентов, которых нет в черном списке, можно использовать несколько вариантов SQL-запросов:

Короткий ответ

Что ответить на собеседовании

Для выбора клиентов, которых нет в черном списке, можно использовать несколько вариантов SQL-запросов:

Подробный разбор

Ответ с пояснениями

Для выбора клиентов, которых нет в черном списке, можно использовать несколько вариантов SQL-запросов:

  1. Использование LEFT JOIN с проверкой на NULL:
SELECT c.*
FROM clients c
LEFT JOIN blacklist b ON c.id = b.id
WHERE b.id IS NULL;
  1. Использование NOT IN:
SELECT *
FROM clients
WHERE id NOT IN (SELECT id FROM blacklist);
  1. Использование NOT EXISTS:
SELECT *
FROM clients c
WHERE NOT EXISTS (
  SELECT 1 FROM blacklist b WHERE b.id = c.id
);

Каждый из этих вариантов имеет свои особенности по производительности в зависимости от СУБД и объёма данных.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее