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

Как да използвам INNER JOIN в SQL

В тази статия ще научим за концепцията INNER JOIN и как да я използваме в SQL с клаузата WHERE.

Какво е INNER JOIN в SQL?

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

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

ИЗБЕРЕТЕ table1.columname1, table1.columnname2, table2.columnname1, table2.columnname2 ОТ TABLE1 INNER JOIN TABLE2 ON table1.column =table2.column;

Table1.column =table2.column е общата колона, която поддържа връзката родител между тези две таблици.

Има някои стъпки, които трябва да използваме във вътрешното присъединяване в SQL заявката:

1. Създайте нова база данни или използвайте съществуваща база данни, като изберете базата данни с помощта на ключовата дума USE, последвана от името на базата данни.

2. Създайте нова таблица в избраната база данни или можете да използвате вече създадена таблица.

3. Ако таблицата е новосъздадена, вмъкнете записите в новосъздадената база данни с помощта на заявката INSERT.

4. Прегледайте вмъкнатите данни с помощта на заявката SELECT без заявката Inner Join.

5 Сега сме готови да използваме Inner Join в SQL заявките.

Стъпка 1:Създайте нова база данни или използвайте вече създадена база данни.

Вече създадох база данни. Ще използвам съществуващото си създадено име на база данни, Компания.

ИЗПОЛЗВАЙТЕ компания;

Компанията е името на базата данни.

Тези, които не са създали база данни, следват следната заявка, за да създадат базата данни:

CREATE DATABASE database_name;

След като създадете базата данни, изберете я с помощта на ключовата дума USE, последвана от името на базата данни.

Стъпка 2:Създайте нова таблица или използвайте вече съществуваща таблица:

Вече създадох таблица. Ще използвам съществуващата таблица с име Employees and Manager, докато изпълняваме заявката Inner Join.

За да създадете новата таблица, следвайте следния синтаксис CREATE TABLE:

CREATE TABLE име_на_таблица(

име на колона1 тип данни (размер на колона),

тип на данни на име2 на колона (размер на колона),

тип на данни име на колона3 (размер на колона )

);

Стъпка 3:Вмъкнете записите в новосъздадената таблица с помощта на заявката INSERT

Използвайте следния синтаксис, за да вмъкнете нови записи в таблицата:

INSERT INTO table_name VALUES(стойност1, стойност2, стойност3);

Стъпка 4: Прегледайте записите с помощта на заявката SELECT.

Вижте записите от таблицата, като използвате следния синтаксис:

SELECT * FROM table_name;

Следната заявка ще покаже записите на служителите.

ИЗБЕРЕТЕ * ОТ Служители;

Резултатът от горната заявка SELECT е:

ИДЕНТИФИКАТОР НА СЛУЖИТЕЛЯ 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
5002 SANKET ЧАУХАН 70 000 ХАЙДЕРАБАД JAVA 3
5003 РОШАН NEHTE 48500 ЧАНДИГАР C# 5
6001 РАХУЛ НИКАМ 54500 БАНГАЛОР ТЕСТВАНЕ 4
6002 АТИС JADHAV 60500 БАНГАЛОР C# 5
6003 НИКИТА ИНГАЛЕ 65 000 ХАЙДЕРАБАД ORACLE 1

Следната заявка ще покаже записите на мениджъра.

ИЗБЕРЕТЕ * ОТ мениджър;

Резултатът от горната заявка SELECT е:

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

Следната заявка ще покаже записите на лаптоп.

ИЗБЕРЕТЕ * ОТ лаптоп;

Резултатът от горната заявка SELECT е:

ЛАПТОПИД ИМЕ ИД НА СЛУЖИТЕЛ
101 DELL NULL
102 HP 1002
103 LENOVO NULL
104 HP 3003
105 DELL 4002
106 LENOVO 4003
107 DELL 5001
108 HP NULL
109 DELL NULL
110 HP NULL
111 LENOVO 2002
112 LENOVO 6003
113 HP 1003

Стъпка 5:Готови сме да използваме INNER JOIN в заявките

Нека разберем Inner Join с помощта на примери.

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

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

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

Резултатът от горната заявка е:

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

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

Пример 2: Напишете заявка за показване на идентификатор на служител, собствено име, фамилия, град и отдел от таблицата на служителя и идентификатор на мениджър и име на мениджър от таблицата на мениджъра, като използвате Inner Join, където отделът на служителя е C#.

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

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

Резултатът от горната заявка е:

ИДЕНТИФИКАТОР НА СЛУЖИТЕЛЯ FIRST_NAME LAST_NAME ЗАПЛАТА ГРАД ОТДЕЛ MANAGERID
1002 VAIBHAV ШАРМА 60 000 NOIDA C# 5
2003 РУЧИКА ДЖЕЙН 50 000 МУМБАЙ C# 5
5003 РОШАН NEHTE 48500 ЧАНДИГАР C# 5
6002 АТИС JADHAV 60500 БАНГАЛОР C# 5

В горния изход можем да видим, че само тези записи са извлечени от служители, чийто отдел е C#. Използваме клаузата WHERE с INNER присъединяването.

Пример 3: Напишете заявка за показване на идентификатора на служителя, собственото име, заплатата, града и отдела от таблицата на служителя и идентификатора на лаптопа и името на лаптопа от таблицата на лаптопа с помощта на Inner Join.

ИЗБЕРЕТЕ E.EMPLOYEEID, E.FIRST_NAME, E.PALARY, E.CITY, E.DEPARTMENT, L.LAPTOPID, L.NAME ОТ СЛУЖИТЕЛИ E ВЪТРЕШНО ПРИСЪЕДИНЕТЕ ЛАПТОП L ON E.EMPLOYEEID =L.EMPLOYEEID;

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

Резултатът от горната заявка е:

ИДЕНТИФИКАТОР НА СЛУЖИТЕЛЯ FIRST_NAME ЗАПЛАТА ГРАД ОТДЕЛ ЛАПТОПИД NAME
1002 VAIBHAV 60 000 NOIDA C# 102 HP
3003 DEEPAM 58500 МУМБАЙ JAVA 104 HP
4002 ASHWINI 54500 NOIDA JAVA 105 DELL
4003 РУЧИКА 60 000 ДЕЛХИ ORACLE 106 LENOVO
5001 АРХИТ 55500 ДЕЛХИ ТЕСТВАНЕ 107 DELL
2002 BHAVESH 65500 ПУНА FMW 111 LENOVO
6003 НИКИТА 65 000 ХАЙДЕРАБАД ORACLE 112 LENOVO
1003 НИХИЛ 50500 ДЖАЙПУР FMW 113 HP

В дадения изход се показват само онези записи, към които е присвоен лаптопа.

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

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

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

Резултатът от горната заявка е:

ИДЕНТИФИКАТОР НА СЛУЖИТЕЛЯ FIRST_NAME LAST_NAME ЗАПЛАТА ГРАД ОТДЕЛ MANAGERID
1001 VAIBHAVI МИШРА 65500 ПУНА ORACLE 1
2001 PRACHI ШАРМА 55500 ЧАНДИГАР ORACLE 1
4003 РУЧИКА AGARWAL 60 000 ДЕЛХИ ORACLE 1
6003 НИКИТА ИНГАЛЕ 65 000 ХАЙДЕРАБАД ORACLE 1
2002 BHAVESH ДЖЕЙН 65500 ПУНА FMW 2
3003 DEEPAM ДЖАУХАРИ 58500 МУМБАЙ JAVA 3
5002 SANKET ЧАУХАН 70 000 ХАЙДЕРАБАД JAVA 3
4001 РАДЖЕШ GOUD 60500 МУМБАЙ ТЕСТВАНЕ 4
1002 VAIBHAV ШАРМА 60 000 NOIDA C# 5
6002 АТИС JADHAV 60500 БАНГАЛОР C# 5

В горния изход се показват само онези записи на служителите, чиято заплата е по-голяма от 57 000 или отделът за служители е „Oracle“. Операторът OR показва записи, ако едно от дадените условия в заявката е вярно.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ML{.NET} Въведение

  2. SQL ПОРЪЧАЙ ПО:5-те правила, които не трябва да се правят за сортиране на данни като професионалист

  3. Свързване на F# към Salesforce.com

  4. Наемане или наемане:Модел на данни за процеса на подбор

  5. Подобряване на медианното решение за номериране на редове