Database
 sql >> база данни >  >> RDS >> Database

Видове SQL JOIN

SQL JOIN комбинира една или повече от една таблици въз основа на връзката им. SQL JOIN включва връзка между родителска и дъщерна таблица.

Има различни типове SQL JOINS:

  1. Вътрешно присъединяване
  2. Ляво външно съединение
  3. Дясно външно съединение
  4. Пълно външно присъединяване
  5. Кръстосано присъединяване.

Нека разберем всеки тип SQL присъединяване с помощта на примери.

Вътрешно присъединяване

Inner Join в SQL е широко използвано присъединяване. Извлича всички записи от двете таблици до и освен ако условието не съвпадне. Това означава, че това обединяване ще върне само онези редове, които са общи и в двете таблици.

Синтаксис на SQL Inner Join:

 Изберете table_name1.colum_name1, table_name1.column_name2, table_name1.column_name3, table_name2.column_name1, table_name2.column_name2, table_name2.column_name3, от table_name1 inner table_name2; 

Помислете за вече съществуващите таблици, които имат определени данни:

Таблица 1:Служители

ИДЕНТИФИКАТОР НА СЛУЖИТЕЛЯ FIRST_NAME LAST_NAME ЗАПЛАТА ГРАД ОТДЕЛ MANAGERID
1001 VAIBHAVI МИШРА 65500 ПУНА ORACLE 1
1002 VAIBHAV ШАРМА 60 000 NOIDA C# 5
1003 НИХИЛ VANI 50500 ДЖАЙПУР FMW 2
2001 PRACHI ШАРМА 55500 ЧАНДИГАР ORACLE 1
2002 BHAVESH ДЖЕЙН 65500 ПУНА FMW 2
2003 РУЧИКА ДЖЕЙН 50 000 МУМБАЙ C# 5
3001 PRANOTI ШЕНДЕ 55500 ПУНА JAVA 3
3002 ANUJA WANRE 50500 ДЖАЙПУР FMW 2
3003 DEEPAM ДЖАУХАРИ 58500 МУМБАЙ JAVA 3
4001 РАДЖЕШ GOUD 60500 МУМБАЙ ТЕСТВАНЕ 4
4002 ASHWINI BAGHAT 54500 NOIDA JAVA 3
4003 РУЧИКА AGARWAL 60 000 ДЕЛХИ ORACLE 1
5001 АРХИТ ШАРМА 55500 ДЕЛХИ ТЕСТВАНЕ 4

Таблица 2:Мениджър

Managerid име_на_мениджър мениджърски отдел
1 Снехдип Каур ORACLE
2 Кирти Киртане FMW
3 Абхишек Маниш JAVA
4 Анупам Мишра ТЕСТВАНЕ
5 Акаш Кадам C#

Таблица 3:Лаптоп:

ЛАПТОПИД NAME ИД НА СЛУЖИТЕЛ
L101 DELL NULL
L102 HP 1002
L103 LENOVO NULL
L104 HP 3003
L105 DELL 4002
L106 LENOVO 4003
L107 DELL 5001
L108 HP NULL
L109 DELL NULL
L110 HP NULL

Примери за SQL вътрешно присъединяване

Пример 1: Изпълнете заявка, за да се присъедините към таблицата на служителите и таблицата на мениджъра и да покажете подробности за служителите, като идентификатор на служител, име на служител, заплата от таблицата на служителя и идентификатор на мениджър и име на мениджър от таблицата на мениджъра.

ИЗБЕРЕТЕ E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, E.PALARY, M.MANAGERID, M.MANAGER_NAME ОТ СЛУЖИТЕЛИ E ВЪТРЕШЕН МЕНИДЖЪР ПРИСЪЕДИНЯВАНЕ M ON E.MANAGERID =M.MANAGERID;

В горната заявка извлечехме идентификатор на служител, собствено име, фамилия, заплата от таблицата на служителя и идентификатора на мениджъра, името на мениджъра от таблицата на мениджъра, където колоната с идентификатор на мениджър на таблицата на служителите е равна на колоната с идентификатор на мениджър на таблицата на мениджъра. Заявката ще върне всички записи за съвпадения от двете таблици. Идентификаторът на мениджъра е обща колона между двете таблици. E е псевдоним за таблицата на служителя, докато M е за таблицата на мениджъра. Полето за идентификатор на мениджъра се поставя като външен ключ в таблицата на служителите. Идентификационният номер на мениджъра работи като първичен ключ в таблицата на мениджъра, който създава връзка родител-дете между двете таблици.

Изход:

ИДЕНТИФИКАТОР НА СЛУЖИТЕЛЯ FIRST_NAME LAST_NAME ЗАПЛАТА MANAGERID MANAGER_NAME
1001 VAIBHAVI МИШРА 65500 1 Снидип Каур
2001 PRACHI ШАРМА 55500 1 Снидип Каур
4003 РУЧИКА AGARWAL 60 000 1 Снидип Каур
1003 НИХИЛ VANI 50500 2 Кирти киртане
2002 BHAVESH ДЖЕЙН 65500 2 Кирти киртане
3002 ANUJA WANRE 50500 2 Кирти киртане
3001 PRANOTI ШЕНДЕ 55500 3 Абхишек Маниш
3003 DEEPAM ДЖАУХАРИ 58500 3 Абхишек Маниш
4002 ASHWINI BAGHAT 54500 3 Абхишек Маниш
4001 РАДЖЕШ GOUD 60500 4 Анупам Мишра
5001 АРХИТ ШАРМА 55500 4 Анупам Мишра
1002 VAIBHAV ШАРМА 60 000 5 Акаш Кадам
2003 РУЧИКА ДЖЕЙН 50 000 4 Акаш Кадам

Записите се показват във възходящ ред по идентификатор на мениджър.

Пример 2: Изпълнете заявка, за да се присъедините към таблицата на служителите и таблицата на мениджъра, и покажете подробности за служителите като идентификатор на служител, име на служител, заплата от таблицата на служителя и идентификатор на мениджър и мениджърски отдел от таблицата на мениджъра, където заплатата на служителя е по-голяма от 58 000.

ИЗБЕРЕТЕ E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, E.PALARY, M.MANAGERID, M.MANAGER_DEPARTMENT ОТ СЛУЖИТЕЛИ E ВЪТРЕШЕН МЕНИДЖЪР ПРИЕДИНЯВАНЕ M ON E.MANAGERID =M.MANAGERID, КЪДЕ ЗАПЛАТА;
58000>

В горната заявка извлечехме идентификатора на служителя, собственото име, фамилията, заплатата от таблицата на служителя, идентификатора на мениджъра и мениджърския отдел от таблицата на мениджъра, където идентификаторът на мениджъра от таблицата на служителите е равен на идентификатора на мениджъра от мениджъра таблица само тези записи на служители, чиято заплата е по-голяма от 58000.

Изход:

ИДЕНТИФИКАТОР НА СЛУЖИТЕЛЯ FIRST_NAME LAST_NAME ЗАПЛАТА MANAGERID МЕНИДЖЕР_ОТДЕЛ
1001 VAIBHAVI МИШРА 65500 1 ORACLE
4003 РУЧИКА AGARWAL 60 000 1 ORACLE
2002 BHAVESH ДЖЕЙН 65500 2 FMW
3003 DEEPAM ДЖАУХАРИ 58500 3 JAVA
4001 РАДЖЕШ GOUD 60500 4 ТЕСТВАНЕ
1002 VAIBHAV ШАРМА 60 000 5 C#

Показват се само шест записа, когато заплатата на служителя надвишава 58 000.

Пример 3: Изпълнете заявка, за да се присъедините към таблицата на служителите и таблицата за лаптоп, покажете подробности за служителя като идентификационен номер на служител, име на служител и заплата, град от таблицата на служителя, идентификатор на лаптоп и име на лаптоп от таблицата на лаптопа

ИЗБЕРЕТЕ EMP.EMPLOYEEID, EMP.FIRST_NAME, EMP.PALARY, EMP.CITY, LAP.LAPTOPID, LAP. ИМЕ ОТ СЛУЖИТЕЛИ EMP INNER JOIN LAPTOP LAP ON EMP.EMPLOYEEID =LAP.EMPLOYEEID;

В горната заявка извлечехме идентификационния номер на служителя, собственото име, заплатата, града от таблицата на служителите, идентификационния номер на лаптопа и името от таблицата на лаптопа, където идентификационният номер на служителя от таблицата на служителите е равен на идентификатора на служителя от таблицата на лаптопа. Идентификаторът на служителите е външен ключ в таблицата на лаптопа, който създава връзка родител-дете между таблицата Employee и таблицата Laptop.

Изход:

ИДЕНТИФИКАТОР НА СЛУЖИТЕЛЯ FIRST_NAME ЗАПЛАТА ГРАД ЛАПТОПИД NAME
1002 VAIBHAV 60 000 NOIDA L102 HP
3003 DEEPAM 58500 МУМБАЙ L104 HP
4002 ASHWINI 54500 NOIDA L105 DELL
4003 РУЧИКА 60 000 ДЕЛХИ L106 LENOVO
5001 АРХИТ 55500 ДЕЛХИ L107 DELL

Показват се записи само на пет служители.

Пример 4: Напишете заявка за показване на идентификатор на служител, собствено име, заплата и отдел от таблицата на служителите Идентификатор на мениджър и име на мениджър от таблицата на мениджъра, като използвате вътрешно присъединяване, където заплатата> 55 000 и отделът е Oracle.

ИЗБЕРЕТЕ ИД НА СЛУЖИТЕЛ, FIRST_NAME, ЗАПЛАТА, ОТДЕЛ, M.MANAGERID, M.MANAGER_NAME ОТ СЛУЖИТЕЛИ E ВЪТРЕШЕН МЕНИДЖЪР НА ПРИСЪЕДИНЯВАНЕ M ON E.MANAGERID =M.MANAGERID, КЪДЕ ЗАПЛАТА> 55000 И ОТДЕЛ ='preORACLE> 

В горния пример за заявка за присъединяване ние показваме подробности за служителя като идентификационен номер, име, заплата и отдел от таблицата на служителя, идентификатор на мениджър и име на мениджър от таблицата на мениджъра, където идентификаторът на мениджър от таблицата на служителите е равен на идентификатора на мениджъра от мениджърът само тези служители, чиято заплата е по-голяма от 55 000 и отделът е Oracle.

Изход:

ИДЕНТИФИКАТОР НА СЛУЖИТЕЛЯ FIRST_NAME ЗАПЛАТА ОТДЕЛ MANAGERID MANAGER_NAME
1001 VAIBHAVI 65500 ORACLE 1 Снехдип Каур
2001 PRACHI 55500 ORACLE 1 Снехдип Каур
4003 РУЧИКА 60 000 ORACLE 1 Снехдип Каур

Само трима служители, чиято заплата е по-голяма от 55 000 и отделът е Oracle.

Пример 5: Изпълнете заявка за присъединяване към таблицата на служителите, мениджъра и лаптопа и покажете подробностите за служителите, идентификатора на мениджъра и идентификатора на лаптопа.

ИЗБЕРЕТЕ E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, M.MANAGERID, L.LAPTOPID ОТ СЛУЖИТЕЛИ E МЕНИДЖЪР ВЪТРЕШНО ПРИСЪЕДИНЯВАНЕ M ON E.MANAGERID =M.MANAGERID INNER JOIN LAPTOP L ON E.EMPLOYEEPLOYID =L.EMPLOYEEID.; 

Горната заявка показва идентификатор на служител, собствено име, фамилия, идентификатор на мениджър и идентификатор на лаптоп от таблици служители, мениджър и лаптоп. Съединяваме три маси. Идентификаторът на служител е обща колона между служителите и таблицата на лаптопа и създава връзка родител-дете между тези три таблици. Между служители и мениджъри, идентификаторът на мениджър на таблица е общата колона.

Изход:

ИДЕНТИФИКАТОР НА СЛУЖИТЕЛЯ FIRST_NAME LAST_NAME MANAGERID ЛАПТОПИД
4003 РУЧИКА AGARWAL 1 L106
3003 DEEPAM ДЖАУХАРИ 3 L104
4002 ASHWINI BAGHAT 3 L105
5001 АРХИТ ШАРМА 4 L107
1002 VAIBHAV ШАРМА 5 L102

Ляво външно съединение

Лявото външно свързване ще върне всички записи на таблицата от лявата страна на съединението и съвпадащите записи за таблицата от дясната страна на съединението. Резултатът съдържа null за записите, които не са често срещани от дясната страна.

Синтаксис на лявото външно присъединяване:

 Изберете table_name1.colum_name1, table_name1.column_name2, table_name1.column_name3, table_name2.column_name1, table_name2.column_name2, table_name2.column_name3, от table_name1 лява join_name2 on table_name1. 

Помислете за съществуващите таблици, които имат следните записи:

Таблица 1:Служители

ИДЕНТИФИКАТОР НА СЛУЖИТЕЛЯ FIRST_NAME LAST_NAME ЗАПЛАТА ГРАД ОТДЕЛ MANAGERID
1001 VAIBHAVI МИШРА 65500 ПУНА ORACLE 1
1002 VAIBHAV ШАРМА 60 000 NOIDA C# 5
1003 НИХИЛ VANI 50500 ДЖАЙПУР FMW 2
2001 PRACHI ШАРМА 55500 ЧАНДИГАР ORACLE 1
2002 BHAVESH ДЖЕЙН 65500 ПУНА FMW 2
2003 РУЧИКА ДЖЕЙН 50 000 МУМБАЙ C# 5
3001 PRANOTI ШЕНДЕ 55500 ПУНА JAVA 3
3002 ANUJA WANRE 50500 ДЖАЙПУР FMW 2
3003 DEEPAM ДЖАУХАРИ 58500 МУМБАЙ JAVA 3
4001 РАДЖЕШ GOUD 60500 МУМБАЙ ТЕСТВАНЕ 4
4002 ASHWINI BAGHAT 54500 NOIDA JAVA 3
4003 РУЧИКА AGARWAL 60 000 ДЕЛХИ ORACLE 1
5001 АРХИТ ШАРМА 55500 ДЕЛХИ ТЕСТВАНЕ 4

Таблица 2:Мениджър

Managerid име_на_мениджър мениджърски отдел
1 Снехдип Каур ORACLE
2 Кирти Киртане FMW
3 Абхишек Маниш JAVA
4 Анупам Мишра ТЕСТВАНЕ
5 Акаш Кадам C#

Таблица 3:Лаптоп

ЛАПТОПИД NAME ИД НА СЛУЖИТЕЛ
L101 DELL NULL
L102 HP 1002
L103 LENOVO NULL
L104 HP 3003
L105 DELL 4002
L106 LENOVO 4003
L107 DELL 5001
L108 HP NULL
L109 DELL NULL
L110 HP NULL

Примери за SQL ляво външно присъединяване

Пример 1: Изпълнете заявка за ляво външно присъединяване към таблицата на служителите и таблицата за лаптоп, където се показва идентификатор на служител, име на служител и идентификатор на лаптоп.

ИЗБЕРЕТЕ E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, L.LAPTOPID, L.NAME ОТ СЛУЖИТЕЛИТЕ E LEFT OUTER JOIN LAPTOP L ON E.EMPLOYEEID =L.EMPLOYEEID; 

В горната заявка показахме идентификатора на служителя, собственото име, фамилията от идентификатора на лаптопа в таблицата на служителя и името от таблицата на лаптопа и изпълнихме заявка за ляво външно присъединяване на тези две таблици. Заявката ще върне нулеви стойности от дясната страна на таблицата, ако редовете не са сходни между таблиците.

Изход:

ИДЕНТИФИКАТОР НА СЛУЖИТЕЛЯ FIRST_NAME LAST_NAME ЛАПТОПИД NAME
1001 VAIBHAVI МИШРА NULL NULL
1002 VAIBHAV ШАРМА L102 HP
1003 НИХИЛ VANI NULL NULL
2001 PRACHI ШАРМА NULL NULL
2002 BHAVESH ДЖЕЙН NULL NULL
2003 РУЧИКА ДЖЕЙН NULL NULL
3001 PRANOTI ШЕНДЕ NULL NULL
3002 ANUJA WANRE NULL NULL
3003 DEEPAM ДЖАУХАРИ L104 HP
4001 РАДЖЕШ GOUD NULL NULL
4002 ASHWINI BAGHAT L105 DELL
4003 РУЧИКА AGARWAL L106 LENOVO
5001 АРХИТ ШАРМА L107 DELL

Пример 2: Напишете заявка за извличане на идентификатор на служител, собствено име, фамилия, заплата от таблицата на служителя, ляво външно присъединяване на таблицата на лаптопа, където заплата> 55000.

ИЗБЕРЕТЕ E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, E.PALARY, L.LAPTOPID, L.NAME ОТ СЛУЖИТЕЛИТЕ E LEFT OUTER JOIN LAPTOP L ON E.EMPLOYEEID =L.EMPLOYEEID КЪДЕ ЗАПЛАТА> 

В горната заявка извадихме данните за служителите от таблицата на служителите и данните за лаптопа от таблицата на лаптопа, но само тези данни за служителите, при които заплатата е по-голяма от 55 000. Изпълнихме лявата външна заявка за свързване на тези две таблици. Заявката ще върне нулеви стойности от дясната страна на таблицата, ако редовете не са сходни между таблиците.

Изход:

ИДЕНТИФИКАТОР НА СЛУЖИТЕЛЯ FIRST_NAME LAST_NAME ЗАПЛАТА ЛАПТОПИД NAME
1001 VAIBHAVI МИШРА 65500 NULL NULL
1002 VAIBHAV ШАРМА 60 000 L102 HP
2001 PRACHI ШАРМА 55500 NULL NULL
2002 BHAVESH ДЖЕЙН 65500 NULL NULL
3001 PRANOTI ШЕНДЕ 55500 NULL NULL
3003 DEEPAM ДЖАУХАРИ 58500 L104 HP
4001 РАДЖЕШ GOUD 60500 NULL NULL
4003 РУЧИКА AGARWAL 60 000 L106 LENOVO
5001 АРХИТ ШАРМА 55500 L107 DELL

Дясно външно съединение

Дясното външно съединение ще върне всички записи на таблицата от дясната страна на съединението и съвпадащите записи за таблицата от лявата страна на съединението. Резултатът съдържа null за записите, които не са често срещани от лявата страна.

Синтаксис на дясното външно присъединяване:

 Изберете table_name1.colum_name1, table_name1.column_name2, table_name1.column_name3, table_name2.column_name1, table_name2.column_name2, table_name2.column_name3, от table_name1 jight oune_name2 on table_name1. 

Примери за SQL дясно външно присъединяване

Пример 1: Изпълнете заявка за дясно външно присъединяване към таблицата на служителите и таблицата на лаптопа, където се показва идентификационният номер на служителя, името на служителите.

ИЗБЕРЕТЕ E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, L.LAPTOPID, L.NAME ОТ СЛУЖИТЕЛИ E Дясно ВЪНШНО ПРИСЪЕДИНЯВАНЕ ЛАПТОПА L ON E.EMPLOYEEID =L.EMPLOYEEID; 

В горната заявка ние показахме идентификатора на служителя, собственото име, фамилията от идентификатора на лаптопа в таблицата на служителя и името от таблицата на лаптопа и изпълнихме дясната заявка за външно присъединяване на тези две таблици. Заявката ще върне нулеви стойности от лявата страна на таблицата, ако редовете не са сходни между таблиците.

Изход:

ИДЕНТИФИКАТОР НА СЛУЖИТЕЛЯ FIRST_NAME LAST_NAME ЛАПТОПИД NAME
NULL NULL NULL L101 DELL
1002 VAIBHAV ШАРМА L102 HP
NULL NULL NULL L103 LENOVO
3003 DEEPAM ДЖАУХАРИ L104 HP
4002 ASHWINI BAGHAT L105 DELL
4003 РУЧИКА AGARWAL L106 LENOVO
5001 АРХИТ ШАРМА L107 DELL
NULL NULL NULL L108 HP
NULL NULL NULL L109 DELL
NULL NULL NULL L110 HP

Пример 2: Напишете заявка за извличане на идентификатор на служител, собствено и фамилно име от таблицата на служителя. Дясното външно съединение на таблицата на лаптопа, където името на лаптопа включва един от списъците е Dell, HP.

ИЗБЕРЕТЕ E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, E.PALARY, L.LAPTOPID, L.NAME ОТ СЛУЖИТЕЛИ E ДЯСНО ВЪНШНО ПРИСЪЕДИНЯВАНЕ НА ЛАПТОПА L ON E.EMPLOYEEID =L.EMPLOYEEID, КЪДЕ L.NAME IN (' DELL“, „HP“);

В горната заявка показахме данните за служителите от данните за лаптопа на масата на служителя на масата на лаптопа. Изпълнихме дясната външна заявка за присъединяване на тези две таблици само този служител, чието име на лаптоп включва един от списъците, е Dell и HP. Заявката ще върне нулеви стойности от лявата страна на таблицата, ако редовете не са сходни между таблиците.

Изход:

ИДЕНТИФИКАТОР НА СЛУЖИТЕЛЯ FIRST_NAME LAST_NAME ЛАПТОПИД NAME
NULL NULL NULL L101 DELL
1002 VAIBHAV ШАРМА L102 HP
3003 DEEPAM ДЖАУХАРИ L104 HP
4002 ASHWINI BAGHAT L105 DELL
5001 АРХИТ ШАРМА L107 DELL
NULL NULL NULL L108 HP
NULL NULL NULL L109 DELL
NULL NULL NULL L110 HP

Пълно външно присъединяване

Пълно външно свързване обединява резултата както от лявото външно свързване, така и от дясното външно свързване. Пълното външно свързване е същото като кръстосано свързване. Full Outer Joins връща изхода, където редовете са често срещани или необичайни между таблиците.

Синтаксис на пълно външно присъединяване:

ИЗБЕРЕТЕ COLUMNNAME1, COLUMNNAME2 ОТ ТАБЛИЦА 1 ПЪЛНО ПРИЕДИНЯВАНЕ НА ТАБЛИЦА2;

Пример 1: Напишете заявка за показване на идентификатор на служител, собствено име, фамилия от идентификатор на мениджър от таблицата на служителя пълно външно присъединяване Таблица на мениджъра, където заплатата на служителя е по-голяма от 65 000.

ИЗБЕРЕТЕ ИД НА СЛУЖИТЕЛ, FIRST_NAME, LAST_NAME, M.MANAGERID ОТ СЛУЖИТЕЛИ МЕНИДЖЪР ПЪЛНО ПРИСЪЕДИНЯВАНЕ M КЪДЕ ЗАПЛАТА> 65000;

В горната заявка ние показахме подробности за служителите и данни за мениджъра от таблицата на служителите и мениджъра, където заплатата на служителя е по-голяма от 65 000, използвайки пълно присъединяване. Напълно присъединете всеки ред от таблицата на служителя през всеки ред от таблицата на мениджъра, т.е. ще се случи декартовият продукт. M * N

Изход:

ИДЕНТИФИКАТОР НА СЛУЖИТЕЛЯ FIRST_NAME LAST_NAME MANAGERID
1001 VAIBHAVI МИШРА 1
1001 VAIBHAVI МИШРА 2
1001 VAIBHAVI МИШРА 3
1001 VAIBHAVI МИШРА 4
1001 VAIBHAVI МИШРА 5
2002 BHAVESH ДЖЕЙН 1
2002 BHAVESH ДЖЕЙН 2
2002 BHAVESH ДЖЕЙН 3
2002 BHAVESH ДЖЕЙН 4
2002 BHAVESH ДЖЕЙН 5

Както виждаме, идентификатор на служител 1001 кръстосано се свързва с всеки идентификатор на мениджър, същото с идентификатор на служител 2002.

Пример 2: Изпълнете пълна заявка за външно присъединяване към таблицата на служителите и таблицата на лаптопа, където заплатата на служителя е по-голяма от 60 000, а местоположението на служителя е Пуна.

ИЗБЕРЕТЕ LAPTOPID, E.EMPLOYEEID, E.FIRST_NAME, E.PALARY, E.CITY ОТ LAPTOP FULL JOIN СЛУЖИТЕЛИ E КЪДЕ ЗАПЛАТА> 60000 И CITY ='PUNE';

В горната заявка показваме идентификатор на лаптоп, идентификатор на служител, собствено име, заплата и град от служителите на лаптоп с пълно присъединяване само тези, чиято заплата е по-голяма от 60 000 и градът е Пуна. Ако и двете условия съвпадат само за служители, записът се извлича.

Изход:

Кръстосано присъединяване

Кръстосаните съединения в SQL не са нищо друго освен наречени декартов продукт. Всеки ред от една таблица се комбинира или слива с всеки ред от другата таблица. M * N е кръстосано присъединяване

Синтаксис на кръстосано присъединяване:

ИЗБЕРЕТЕ COLUMNNAME1, COLUMNNAME2 ОТ ТАБЛИЦА 1 КРЪСТО СЪЕДИНЯВАНЕ ТАБЛИЦА2;

Пример 1: Напишете заявка за извършване на операция кръстосано свързване на таблицата на служителите и таблицата на мениджъра, където първото име на служителя започва с A

ИЗБЕРЕТЕ ИД НА СЛУЖИТЕЛ, FIRST_NAME, M.MANAGERID ОТ СЛУЖИТЕЛИ МЕНИДЖЪР КРЪСТО ПРИСЪЕДИНЯВАНЕ M КЪДЕТО FIRST_NAME КАТО 'A%';

В горния пример за пълна заявка за външно присъединяване извлечехме данните за служителите и данните за мениджъра от таблицата на служителите и таблицата на мениджъра, но само онези записи, при които първото име на служителя започва с буквата „А“.

Изход:

Резултатът показва, че идентификационният номер на служител е кръстосано свързване с всеки ред с идентификатор на мениджър.

M * N Тук M =3; идентификатор на служител от таблици на служители

N =5; идентификатор на мениджър от таблица на мениджър 3 * 5 =15 реда.

Пример 2: Напишете заявка за извършване на операция за кръстосано свързване на маса за лаптоп и таблица на служителите, където заплатата на служителите е по-голяма от 58 000 и Мумбай.

ИЗБЕРЕТЕ ЛАПТОПИД, ИМЕ, Е. СЛУЖИТЕЛ ОТ ЛАПТОП КРЪСТ ПРИСЪЕДИНЕТЕ СЛУЖИТЕЛИ E КЪДЕТО ЗАПЛАТА> 58000 И ГРАД ='МУМБАЙ';

В горната заявка ние показахме идентификатора на лаптопа, името и идентификатора на служителя от таблицата на лаптопа, за да извършим операция за кръстосано присъединяване на таблицата на служителите, където заплатата на служителя е по-голяма от 58 000 и градът е Пуна. Кръстосаното свързване се изпълнява като M * N.

Изход:


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Грешка в индексиран изглед със скаларни агрегати

  2. Как да свържете база данни с Amazon VPC

  3. Релационни срещу нерелационни бази данни – част 3

  4. Звездната схема

  5. Най-близкото съвпадение, част 3