Декартово произведение

Ранее мы уже рассмотрели реализацию декартова произведения, состоящую в перечислении через запятую табличных выражений (таблиц, представлений, подзапросов) в предложении FROM при отсутствии предложения WHERE, связывающего столбцы из перечисленных источников строк. Кроме того, можно использовать еще и явную операцию этого соединения – CROSS JOIN, например:

SELECT Laptop.model, Product.model
FROM Laptop 
    CROSS JOIN Product;
mssql
🚫
[[ error ]]
[[ column ]]
[[ value ]]

Напомним, что при декартовом произведении каждая строка из первой таблицы соединяется с каждой строкой второй таблицы. В результате количество строк результирующего набора равно произведению количества строк операндов декартова произведения. В нашем примере таблица Laptop содержит 5 строк, а таблица Product — 16. В результате получается 5 * 16 = 80 строк. Поэтому мы не приводим здесь результат выполнения этого запроса. Вы можете сами проверить это утверждение, выполнив приведенный выше запрос.

Замечание

В чистом виде декартово произведение практически не используется, оно, как правило, является промежуточным результатом выполнения операции горизонтальной проекции (выборки) при наличии в операторе SELECT предложения WHERE.

Рекомендуемые упражнения: 58, 115