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

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

Semi JOIN в PostgreSQL — это неявный тип соединения, который возвращает строки из первой таблицы, имеющие соответствия во второй таблице, без дублирования строк. В отличие от обычного JOIN, он не объединяет столбцы из второй таблицы.

Основные варианты реализации:

  1. Использование EXISTS в подзапросе
  2. Использование IN с подзапросом
  3. Использование = ANY с подзапросом

Пример:

sql
-- Вариант с EXISTS
SELECT *
FROM employees e
WHERE EXISTS (
    SELECT 1
    FROM departments d
    WHERE e.department_id = d.id AND d.name = 'IT'
);

-- Эквивалент с IN
SELECT *
FROM employees
WHERE department_id IN (
    SELECT id
    FROM departments
    WHERE name = 'IT'
);

Преимущества Semi JOIN:

  • Более эффективен, чем обычный JOIN, когда нужны только строки из первой таблицы
  • Избегает дублирования строк при наличии нескольких совпадений во второй таблице
  • Часто оптимизируется планировщиком запросов PostgreSQL
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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