CROSS JOIN
Декартово произведение двух таблиц: каждая строка первой соединяется с каждой строкой второй.
SELECT ... FROM t1 CROSS JOIN t2;
Объяснение
Пример
-- Все комбинации размеров и цветов SELECT s.name AS size, c.name AS color FROM sizes s CROSS JOIN colors c ORDER BY s.name, c.name;
Связанные термины
Анекдоты по теме
Начинающий: — Я выучил SQL за неделю! Опытный: — Поздравляю. Ты выучил SELECT, INSERT, UPDATE, DELETE. Осталось лет 5 на JOIN, индексы, транзакции и почему NULL — это зло. Удачи.
— Почему HASH JOIN быстрее NESTED LOOP при больших таблицах? — NESTED LOOP: для каждой строки левой таблицы ищет совпадение в правой. O(n*m). — HASH JOIN: строит хэш-таблицу из меньшей таблицы, потом сканирует большую. O(n+m). — Но при маленьких таблицах? — NESTED LOOP эффективнее из-за меньших накладных расходов.
— Что такое N+1 проблема? — Загрузил список из 100 пользователей — 1 запрос. Потом для каждого загрузил заказы — 100 запросов. Итого 101 запрос вместо 1 с JOIN. — Как исправить? — prefetch_related / eager loading / JOIN.