Встречается на собеседованиях • сегодня

Что такое Anti JOIN в PostgreSQL

Anti JOIN — это операция, которая возвращает строки из первой таблицы, для которых нет совпадений во второй таблице. В PostgreSQL это можно реализовать несколькими способами:

  1. Используя NOT EXISTS:
sql
SELECT a.* 
FROM table_a a
WHERE NOT EXISTS (
    SELECT 1 FROM table_b b 
    WHERE b.key = a.key
);
  1. Через LEFT JOIN с проверкой на NULL:
sql
SELECT a.*
FROM table_a a
LEFT JOIN table_b b ON a.key = b.key
WHERE b.key IS NULL;
  1. С помощью EXCEPT (если структура таблиц идентична):
sql
SELECT * FROM table_a
EXCEPT
SELECT * FROM table_b;

Основное отличие между подходами — производительность. NOT EXISTS и LEFT JOIN обычно работают быстрее, чем EXCEPT, особенно на больших таблицах. Оптимальный выбор зависит от конкретного случая и индексов.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы