Команда CROSS JOIN

Команда CROSS JOIN используется для объединения каждой строки первой таблицы с каждой строкой второй таблицы. В результате формируется декартово произведение, где количество строк равно произведению количеств строк обеих таблиц.

Синтаксис

sqlSELECT column_list FROM table_name
CROSS JOIN related_table

Таблицы для примеров

colors
id name
1 Red
2 Blue
sizes
id name
1 Small
2 Large

Пример

Давайте сформируем все возможные комбинации цветов и размеров:

sqlSELECT
  colors.name AS color,
  sizes.name AS size
FROM colors
CROSS JOIN sizes
ORDER BY colors.id, sizes.id

Результат выполнения кода:

color size
Red Small
Red Large
Blue Small
Blue Large

Пример

Давайте после выполнения CROSS JOIN ограничим результат с помощью LIMIT:

sqlSELECT
  colors.name AS color,
  sizes.name AS size
FROM colors
CROSS JOIN sizes
LIMIT 2

Результат выполнения кода:

color size
Red Small
Red Large

Смотрите также

  • команду JOIN,
    которая связывает таблицы по условию
  • команду INNER JOIN,
    которая соединяет только совпадающие строки
  • команду WHERE,
    которая ограничивает результат после соединения
  • команду LIMIT,
    которая обрезает количество строк