Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Postgres: cross, join

Что такое CROSS JOIN?

Вопрос проверяет понимание типов JOIN и их влияния на размер результирующего набора данных.

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

CROSS JOIN — это декартово произведение таблиц. Каждая строка первой таблицы соединяется с каждой строкой второй. Условия соединения при этом отсутствуют. Такой JOIN быстро увеличивает количество строк в результате.

Длинный ответ

CROSS JOIN — самый простой и при этом самый опасный тип соединения таблиц.

Что делает CROSS JOIN

Определение:
CROSS JOIN возвращает все возможные комбинации строк из двух таблиц.

Если:

  • в первой таблице 10 строк

  • во второй таблице 5 строк

Результат будет содержать 50 строк.

Синтаксис

SELECT *
FROM users
CROSS JOIN roles;

Аналогичная форма записи:

SELECT *
FROM users, roles;

Где применяется на практике

CROSS JOIN используется редко и осознанно:

  • генерация комбинаций значений

  • подготовка тестовых данных

  • работа с календарными таблицами

  • расчет всех возможных вариантов

Опасности использования

  • резкий рост количества строк

  • высокая нагрузка на память и CPU

  • случайное использование вместо INNER JOIN

Краткий вывод

CROSS JOIN создает декартово произведение таблиц и должен использоваться только тогда, когда это действительно требуется по логике задачи.

Уровень

  • Рейтинг:

    3

  • Сложность:

    4

Навыки

  • Postgres

    Postgres

Ключевые слова

#cross

#join

Подпишись на Java Developer в телеграм