Sobes.tech
Middle+

Zadanie SQL: istnieją dwie tabele A i B z danymi klientów. Jak wybrać klientów z tabeli A, których nie ma w tabeli B?

sobes.tech AI

Odpowiedź od AI

Чтобы выбрать клиентов из таблицы A, которых нет в таблице B, можно использовать SQL-запрос с оператором NOT IN, LEFT JOIN или NOT EXISTS.

Пример с NOT IN:

SELECT *
FROM A
WHERE client_id NOT IN (SELECT client_id FROM B);

Пример с LEFT JOIN:

SELECT A.*
FROM A
LEFT JOIN B ON A.client_id = B.client_id
WHERE B.client_id IS NULL;

Пример с NOT EXISTS:

SELECT *
FROM A
WHERE NOT EXISTS (
    SELECT 1 FROM B WHERE B.client_id = A.client_id
);

Все три варианта выбирают клиентов из таблицы A, которых нет в таблице B, по полю client_id (предполагается, что это идентификатор клиента). Выбор конкретного варианта зависит от СУБД и предпочтений по производительности.