Коли використовувати декартовий продукт SQL?

У моделі реляційної бази даних використовується декартовий добуток з’єднати між собою набори кортежів у вигляді таблиці. Результатом цієї операції є інший набір упорядкованих кортежів, де кожен кортеж складається з одного елемента з кожного початкового набору. 29 серпня 2018 р.

У SQL Server декартовий добуток фактично є перехресним з’єднанням, яке повертає всі рядки з усіх таблиць, перелічених у запиті: кожен рядок першої таблиці співставляється з усіма рядками другої таблиці. Таке буває коли між двома таблицями немає визначеного зв’язку .

Декартовий добуток визначається як "всі можливі комбінації всіх рядків у всіх таблицях". Наприклад, якщо ви об’єднали дві таблиці без будь-якої кваліфікації чи типу об’єднання, ви отримаєте декартів добуток.

Це корисно коли ви хочете поєднати кожен рядок в одній таблиці з кожним рядком в іншій таблиці . Порядок є важливим, тому ми використовуємо впорядковані пари, щоб отримати нову таблицю з таблиць A і B. Наприклад, якщо є дві таблиці, A і B, кожна має 3 і 2 рядки відповідно. Тоді декартовий добуток матиме 3 * 2 лінії.

Щоб уникнути створення декартового добутку, ви повинні завжди використовувати умову об’єднання, яка відповідає стовпцям обох таблиць, і використовувати підзапит, який повертає лише один рядок або стовпець у скалярному контексті, як у реченні WHERE або SELECT.

Використовується декартова площина щоб призначити місцезнаходження будь-якій точці на площині. На графіку позначено точкою +2 на осі абсцис і +3 на осі ординат. Набір (2, 3) називається «впорядкованою парою», і інші точки можуть бути розташовані таким же чином.