Пример SQL CROSS JOIN | Типы запросов на соединение SQL

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

Перекрестное соединение также называется декартовым произведением .

В отличие от INNER JOIN или LEFT JOIN , перекрестное соединение не устанавливает отношения между соединенными таблицами. Когда каждая строка первой таблицы объединяется с каждой строкой из второй таблицы, это называется декартовым соединением или перекрестным соединением.

SQL CROSS Пример JOIN

CROSS JOIN объединил каждую строку из первой таблицы (T1) с каждой строкой из второй таблицы (T2).

Другими словами, перекрестное соединение возвращает декартово произведение строк из обеих таблиц. Количество строк в декартовом произведении является произведением количества строк в каждой задействованной таблице.

Допустим, у нас есть две таблицы A и B.

Следующие ниже операторы выполняют перекрестное соединение и производят декартово произведение строк из таблиц A и B.

 SELECT *  FROM A JOIN B; 
 SELECT * FROM AINNER JOIN B; 
 SELECT * FROM ACROSS JOIN B; 
 SELECT * FROM A  , B; 

Предположим, таблица A имеет N строк, а таблица B имеет M строк, тогда CROSS JOIN этих двух таблиц даст набор результатов который содержит N x M строк.

Представьте, что если у вас есть третья таблица C с K строками, результат предложения CROSS JOIN этих трех таблиц будут содержать N x M x K строк, которые могут быть огромными. Вот почему вам нужно быть очень осторожным при использовании предложения CROSS JOIN .

Вы используете предложения INNER JOIN и LEFT JOIN чаще, чем предложения CROSS JOIN . Однако вы найдете предложение CROSS JOIN очень полезным в некоторых случаях использования.

Сходство между INNER JOIN и CROSS JOIN

Если условие используется с CROSS JOIN , оно будет вести себя как INNER JOIN .

NOTE:

Если условие Where не используется с CROSS JOIN, оно будет вести себя как декартово произведение.

Синтаксис перекрестного соединения

 SELECT COLUMNS_NAME FROM TABLE_1 CROSS JOIN TABLE_2; 
  1. В приведенном выше синтаксис, COLUMNS_NAME — это имя столбцов, к которым пользователь хочет присоединиться.
  2. Table_1 и Table_2 — имена таблиц.

Как вы можете видеть выше, в таблице 1 одна строка будет соответствовать всем строкам таблицы 2.

ПОКАЗАТЬ КРЕСТНОЕ СОЕДИНЕНИЕ БЕЗ ГДЕ УСЛОВИЯ

См. следующий запрос.

 Выберите * из  СТУДЕНТ КРОСС ПРИСОЕДИНЯЕТСЯ К КУРСУ; 
Вывод:

Вы также можете получить этот результат без использования ключевого слова CROSS JOIN.

См. Следующий запрос.

 Выбрать  * от СТУДЕНТ, КУРС; 

Вывод

Другие примеры:

Пользователи также могут выбирать дополнительные столбцы; не все столбцы необходимы для перекрестного соединения.

См. следующий запрос.

 Выберите student.roll_no, student.name, course.course из курса Student CROSS JOIN;  

См. результат.

ПОКАЗАТЬ КРЕСТНОЕ СОЕДИНЕНИЕ С ИСПОЛЬЗОВАНИЕМ ГДЕ УСЛОВИЯ

См. таблицу ниже.

Таблица_1: Сотрудник
Emp_id Emp_name Город Штат Зарплата
101 Rohit Патна Бихар 30000
201 Шивам Джаландхар Punjab 20000
301 Каран Аллахабад Уттар-Прадеш 40000
401 Сурадж Калькутта Западная Бенгалия 60000
501 Акаш Визаг Андхра-Прадеш 70000

Таблица_2: Отдел

Dept_no Emp_id
123 301
214 401
125 505

См. Следующий запрос.

 Выберите * из Employee CROSS JOIN Department, где Employee.emp_id = Department.emp_id; 

См. Вывод.

Как упоминалось выше, CROSS JOIN аналогичен INNER JOIN, если используется с условием where.

Дополнительная информация

Предположим, есть m строк в таблице 1 и n строк в таблице 2

Тогда общее количество сформированных строк будет (m*n)

В приведенном выше примере четыре строки в таблицах учеников и три строки в таблицах курса.

Таким образом, общее количество сформированных строк равно 12.

Это также известно как количество элементов.

Наконец, пример SQL CROSS JOIN завершен.

Оцените статью
nanomode.ru
Добавить комментарий