Встречается на собеседованиях • сегодня
Сталкивался ли с Semi JOIN в PostgreSQL
Semi JOIN в PostgreSQL — это не отдельный синтаксический оператор, а концепция, когда JOIN используется для фильтрации строк без дублирования. Он возвращает строки из первой таблицы, где есть совпадения во второй, но без объединения строк второй таблицы.
Пример с EXISTS (классический Semi JOIN):
sql
SELECT *
FROM users u
WHERE EXISTS (
SELECT 1
FROM orders o
WHERE o.user_id = u.id
);Эквивалент с IN:
sql
SELECT *
FROM users
WHERE id IN (SELECT user_id FROM orders);Ключевые особенности:
- Не дублирует строкй при совпадениях (в отличие от обычного JOIN)
- Оптимизатор часто преобразует IN/EXISTS в одинаковый план выполнения
- EXISTS обычно эффективнее при большом подзапросе, IN — при малом списке значений

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы