Въведение в Съединения в MySQL

MySQL Joins играе важна роля, когато трябва да обединим две таблици заедно въз основа на една или повече общи стойности, споделяни от две таблици.

Пример : Нека помислим, че имаме две таблици, едната е таблицата на служителите, състояща се от служител_id, phn_no, заплата и отдел. Друга таблица е таблицата с адреси, която се състои от служител_id и адрес. Ако трябва да открием служител_id, отдел и адрес, тогава трябва да се присъединим и към двете таблици, споделящи общото поле като служител_ид.

Заявка :

SELECT e1.employee_id, e1.department, a1.address
FROM employee e1
INNER JOIN address a1
ON e1.employee_id = a1.employee_id;

Топ 6 вида присъединения в MySQL

В MySQL има различни видове присъединения. По-долу споменатите съединения се срещат в ежедневна употреба и са най-полезни при извършване на много заявки в реални сценарии.

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

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

Вътрешното присъединяване връща стойността, която съвпада в двете таблици.

Тази част идва в изхода, както е показано на снимката по-горе.

Пример №1:

Emp_id отдел Заплата
1001 ТО 1000
1002 CSR 800
1003 ТО 2000

Това е таблицата на служителите.

Emp_id адрес
1002 Делхи
1003 Бангалор
1005 Bbsr

Ето таблицата с адреси на тези служители. Основният ключ em_id на служителя на родителската таблица се използва като чужд ключ в адресната таблица, която е дъщерната таблица. Ще намерим em_id, отдел и адрес на един служител, използвайки вътрешно присъединяване. Тъй като вътрешно присъединяване състояния Той извлича записите, които са налични / общи в двете таблици.

Запитване:

SELECT emp.emp_id, emp.department, ads.address
FROM employee AS emp
INNER JOIN address AS ads
ON emp.emp_id = ads.emp_id;

Даваме псевдоним на името на таблицата, само за да избегнем повече време. В горната заявка използваме псевдоним 'emp' за таблицата на служителите и 'ads' за адресната таблица.

изход:

Emp_id отдел адрес
1002 CSR Делхи
1003 ТО Бангалор

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

Пример №2:

Тук имаме 2 таблици, table1 & table2. И двете таблици се състоят от един атрибут всяка като колона A и колона B съответно.

Маса 1

Колона A
1
1
2
3
4

Таблица 2

Колона Б
1
2
2
3
3
5

Запитване:

If we apply inner join here,
SELECT * FROM Table1
INNER JOIN table2
ON columnA = columnB;

изход:

Колона A Колона Б
1 1
1 Нула
2 2
Нула 2
3 3
Нула 3

2. Ляво съединение

Това присъединяване връща всички записи от лявата таблица и съвпадащите записи от дясната таблица.

Както показва диаграмата по-горе, тя се състои от всички записи на таблица A и общите от A и B.

Пример №1:

Клиентски номер име град
1 Хариш Куттак
2 Дейвид Бангалор
3 Махеш Бхубанешвар
4 Сам Колката

Клиентска таблица:

ORDER_ID Количество Клиентски номер
19868 7575.00 4
19976 434654.00 2
99680 7457.00 3

Таблица за поръчки:

Ще разберем customer_id, име и order_id, свързани с използване на присъединяване вляво.

Запитване:

SELECT cust.Customer_id, cust.Name, ord.Order_id
FROM customer cust
LEFT JOIN order ord
ON cust.customer_id = ord.customer_id;

изход:

Клиентски номер имеORDER_ID
1 Хариш нула
2 Дейвид 19976
3 Махеш 99680
4 Сам 19868

Докато обсъждахме това присъединяване вляво извади целия клиентски идентификатор от клиентската таблица и общите между двете таблици. За customer_id '1' ще се покаже като 'null', тъй като '1' customer_id не присъства в таблицата с поръчки.

Пример №2:

Тук имаме 2 таблици, table1 & table2. И двете таблици се състоят от един атрибут всяка като колона A и колона B съответно.

Маса 1

Колона A
1
1
2
2
3

Таблица 2

Колона Б
1
2
2
4
4
5
5

Запитване:

If we apply left join on above 2 tables,
SELECT * FROM table1
LEFT JOIN table2
ON columnA = columnB;

Колона A Колона Б
1 1
1 Нула
2 2
2 2
3 Нула

3. Право присъединяване

Това присъединяване връща всички записи от дясната таблица и съвпадащите от лявата таблица.

Горната диаграма показва, че извлича всички записи от таблица Б и общите, които присъстват и в двете таблици.

Пример:

Клиентски номер име град
3 Махеш Бхубанешвар
4 Сам Колката
5 овен Мумбай

Клиентска таблица:

ORDER_ID Количество Клиентски номер
19868 7575.00 4
19976 434654.00 2
99680 7457.00 3

Таблица за поръчки:

Ще разберем customer_id, име и order_id, свързани с него, като използваме правилното съединение.

Запитване:

SELECT cust.Customer_id, cust.Name, ord.Order_id
FROM customer cust
RIGHT JOIN order ord
ON cust.customer_id = ord.customer_id;

изход:

Клиентски номер име ORDER_ID
2 нула 19976
3 Махеш 99680
4 Сам 19868

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

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

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

Пример:

Клиентски номер име град
3 Махеш Бхубанешвар
4 Сам Колката
5 овен Мумбай

Клиентска таблица:

ORDER_ID Количество Клиентски номер
19868 7575.00 4
19976 434654.00 2
99680 7457.00 3

Таблица за поръчки:

Ще разберем customer_id, име и order_id, свързани с него, използвайки пълно външно съединение.

Запитване:

SELECT cust.Customer_id, cust.Name, ord.Order_id
FROM customer cust
FULL OUTER JOIN order ord
ON cust.customer_id = ord.customer_id;

изход:

Клиентски номер име ORDER_ID
2 нула 19976
3 Махеш 99680
4 Сам 19868
5 овен нула

Това пълно външно присъединяване извади целия идентификационен номер на клиента от таблицата на клиента, както и таблицата за поръчки.

5. Самостоятелно присъединяване

Самосъединяването е редовно присъединяване и тук масата се присъединява само към себе си.

Emp_id име Телефон не град Страна
1001 Р. Мадван 9687687698 Бангалор Индия
1002 Гобу Шарма 9856453423 Pune Индия
1003 Debasish Das 8765456787 Мумбай Индия
1004 Amit Rout 4567788635 Pune Индия
1005 Самбит Кар 8789887873 Хайдерабад Индия

Ето таблицата на служителите, състояща се от няколко полета. Ще разберем служителите, живеещи в един и същи град.

Заявка :

SELECT e1.name AS Employee_name1, e2.name AS employee_name2, e1.City
FROM employee e1, employee e2
WHERE e1.name e2.name
AND e1.city = e2.city;

Резултат :

Employee_name1 Employee_name2 e1.city
Гобу Шарма Amit Rout Pune
Amit Rout Гобу Шарма Pune

6. Кръстосана връзка

Това присъединяване произвежда резултат, при който броят на редовете в първата таблица се умножава с редовете във втората таблица. Този вид резултат се нарича декартов продукт. Ако използваме клаузата WHERE с това присъединяване, то това ще работи като вътрешно присъединяване.

Пример:

Prod_id Име на продукта Prod_unit Company_id
1 Chex смес бр 12
2 Cheez-то бр 15
3 бисквит бр 16

Таблица с продукти :

Company_id Име на фирмата Company_city
15 Foodies Делхи
16 Джак н Джил Куттак
17 естествен Бангалор

Фирмена таблица:

Ще приложим кръстосано присъединяване към тези таблици.

Заявка :

SELECT p.product_name, p.prod_unit, c.company_name
FROM product p
CROSS JOIN company c;

Резултат :

p.product_name p.prod_unit c.company_name
Chex смес бр Foodies
Cheez-то бр Foodies
бисквит бр Foodies
Chex смес бр Джак н Джил
Cheez-то бр Джак н Джил
бисквит бр Джак н Джил
Chex смес бр естествен
Cheez-то бр естествен
бисквит бр естествен

заключение

Значението на тези съединения е много важно, докато се работи в сценарии в реално време, както и в някои други технологии. При визуализации като Tableau и Power BI, съединенията играят жизненоважна роля. Структурираната практика на това е от ключово значение за вграждането на тези нови техники и умения.

Препоръчителен член

Това е ръководство за присъединяванията в MySQL. Тук обсъждаме топ 6 вида обединения в MySQL като Inner, Left, Right, Full, Self, Cross и неговите примери, заедно със заявка и изход. можете също да прегледате нашите предложени статии, за да научите повече -

  1. Топ 10 MySQL команди
  2. Въведение в MySQL Оператори
  3. MySQL срещу SQLite | Топ 14 сравнение
  4. Топ 23 MySQL String функции
  5. Обяснете командата за вмъкване в MySQL с примери
  6. Топ 6 разлики между първичен и външен ключ