JOINСредний
CROSS JOIN
Декартово произведение двух таблиц: каждая строка первой соединяется с каждой строкой второй.
Синтаксис
SELECT ... FROM t1 CROSS JOIN t2;
Объяснение
CROSS JOIN возвращает N × M строк. Без условия ON.
Опасен с большими таблицами: 1000 × 1000 = миллион строк. Используется для генерации комбинаций — например, все возможные пары товаров и цветов.
Пример
-- Все комбинации размеров и цветов SELECT s.name AS size, c.name AS color FROM sizes s CROSS JOIN colors c ORDER BY s.name, c.name;
Связанные термины
Анекдоты по теме
Начинающий: — Я написал JOIN, а строк стало больше, чем было! Опытный: — Поздравляю. Ты сделал CROSS JOIN. Забыл ON.
— Как проверить, понимаешь ли ты SQL? — Попробуй объяснить бабушке разницу между LEFT JOIN и RIGHT JOIN. Если она поймёт — ты профи. Если нет — учи дальше.
— Зачем программисту SQL? — Чтобы спросить у базы данных: «Дай мне всех пользователей, у кого есть хоть одна покупка». — А если без SQL? — Тогда придётся перебирать всех вручную. Руками.