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? — Потому что боятся, что таблицы «перемножатся» и получатся миллионы строк. Правильно боятся. Без правильного условия так и будет.
Преподаватель: — Чем отличается INNER JOIN от LEFT JOIN? Студент: — INNER JOIN — как друзья, которые общаются только если у них есть общие интересы. LEFT JOIN — как родственники: ты их не звал, но они всё равно есть.
— Почему JOIN любят, но боятся? — Потому что соединить две таблицы легко. А четыре — уже сложно. А восемь — ты уже не программист, а жонглёр.