Декартово произведение
Ранее мы уже рассмотрели реализацию декартова произведения, состоящую в перечислении через запятую табличных выражений (таблиц, представлений, подзапросов) в предложении FROM при отсутствии предложения WHERE, связывающего столбцы из перечисленных источников строк. Кроме того, можно использовать еще и явную операцию этого соединения – CROSS JOIN, например:
SELECT Laptop.model, Product.model
FROM Laptop
CROSS JOIN Product;
[[ column ]] |
---|
[[ value ]] |
Напомним, что при декартовом произведении каждая строка из первой таблицы соединяется с каждой строкой второй таблицы. В результате количество строк результирующего набора равно произведению количества строк операндов декартова произведения. В нашем примере таблица Laptop содержит 5 строк, а таблица Product — 16. В результате получается 5 * 16 = 80 строк. Поэтому мы не приводим здесь результат выполнения этого запроса. Вы можете сами проверить это утверждение, выполнив приведенный выше запрос.
Замечание
В чистом виде декартово произведение практически не используется, оно, как правило, является промежуточным результатом выполнения операции горизонтальной проекции (выборки) при наличии в операторе SELECT предложения WHERE.