Увод у придруживања у МиСКЛ-у
МиСКЛ Јоинс игра важну улогу када морамо спојити две табеле заједно на основу једне или више заједничких вредности које деле две табеле.
Пример : Размотримо да имамо две табеле, а једна је табела запослених која се састоји од запосленог_ид, пхн_но, плате и одељења. Друга табела је табела адреса која се састоји од_ запосленице и адресе. Ако требамо пронаћи запослени_ид, одељење и адресу, морамо се придружити обема табелама које деле заједничко поље као запослени_ид.
Упит :
SELECT e1.employee_id, e1.department, a1.address
FROM employee e1
INNER JOIN address a1
ON e1.employee_id = a1.employee_id;
Топ 6 врста придруживања у МиСКЛ-у
Постоје различите врсте придруживања у МиСКЛ-у. Испод поменуте придруживања свакодневно се користе и најкориснији су за спровођење многих упита у стварним сценаријима.
- Унутрашње придруживање
- Лево спајање
- Десно се придружите
- Потпуна спојка на споју
- Само се придружите
- Цросс јоин
1. Унутрашње придруживање
Унутрашње придруживање враћа вредност која се подудара у обе табеле.
Овај део долази у излазу као што је приказано на слици изнад.
Пример бр. 1:
Емп_ид | Одељење | Плата |
1001 | ТО | 1000 |
1002 | ЦСР | 800 |
1003 | ТО | 2000 |
Ово је сто за запослене.
Емп_ид | Адреса |
1002 | Делхи |
1003 | Бангалор |
1005 | Ббср |
Ево табеле адреса тих запослених. Примарни кључ емп_ид запосленика родитељске таблице користи се као страни кључ у адресној таблици која је подређена табела. Пронаћи ћемо ем_ид, одељење и адресу једног запосленика помоћу унутрашњег придруживања. Будући да су унутрашња стања спајања Дохваћа записе који су присутни / заједнички у обје табеле.
Упит:
SELECT emp.emp_id, emp.department, ads.address
FROM employee AS emp
INNER JOIN address AS ads
ON emp.emp_id = ads.emp_id;
Ми дајемо псеудоним називу таблице само да избјегнемо више времена. У горњем упиту користимо псеудоним 'емп' за табелу запосленика и 'адс' за табелу адреса.
Излаз:
Емп_ид | Одељење | Адреса |
1002 | ЦСР | Делхи |
1003 | ТО | Бангалор |
Како су у горњем примеру емп_ид 1002 и 1003 уобичајене између обе табеле, наредба за интерно придруживање проналази излаз само за ове запослене.
Пример бр. 2:
Овде имамо 2 табеле, табле1 и табле2. Обје табеле се састоје од по једног атрибута, сваки као ступац А и ступац Б.
Табела 1
Ступац А |
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;
Излаз:
Ступац А | Колона Б |
1 | 1 |
1 | Нула |
2 | 2 |
Нула | 2 |
3 | 3 |
Нула | 3 |
2. Лево придруживање
Ово придруживање враћа све записе из леве табеле и подударне записе из десне табеле.
Као што приказује горњи дијаграм, састоји се од свих записа табеле А и уобичајених записа из А и Б.
Пример бр. 1:
Идентификација купца | Име | Град |
1 | Харисх | Цуттацк |
2 | Давид | Бангалор |
3 | Махесх | Бхубанесвар |
4 | Сам | Колката |
Табела клијената:
ИД поруџбине | Износ | Идентификација купца |
19868 | 7575.00 | 4 |
19976 | 434654.00 | 2 |
99680 | 7457.00 | 3 |
Табела поруџбине:
Открићемо цустомер_ид, име и ордер_ид повезане помоћу леве придруживања.
Упит:
SELECT cust.Customer_id, cust.Name, ord.Order_id
FROM customer cust
LEFT JOIN order ord
ON cust.customer_id = ord.customer_id;
Излаз:
Идентификација купца | Име | ИД поруџбине |
1 | Харисх | нула |
2 | Давид | 19976 |
3 | Махесх | 99680 |
4 | Сам | 19868 |
Док смо расправљали о овом левом придруживању пронашли смо све корисничке ИД-ове из корисничке таблице и оне уобичајене између обе табеле. За цустомер_ид '1' приказат ће се као 'нулл' јер '1' цустомер_ид није присутан у таблици налога.
Пример бр. 2:
Овде имамо 2 табеле, табле1 и табле2. Обје табеле се састоје од по једног атрибута, сваки као ступац А и ступац Б.
Табела 1
Ступац А |
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;
Ступац А | Колона Б |
1 | 1 |
1 | Нула |
2 | 2 |
2 | 2 |
3 | Нула |
3. Ригхт Јоин
Ово придруживање враћа све записе из десне табеле и одговарајуће из леве табеле.
Горњи дијаграм показује да се дохваћају сви записи из табеле Б и заједнички који су присутни у обе табеле.
Пример:
Идентификација купца | Име | Град |
3 | Махесх | Бхубанесвар |
4 | Сам | Колката |
5 | РАМ | Мумбаи |
Табела клијената:
ИД поруџбине | Износ | Идентификација купца |
19868 | 7575.00 | 4 |
19976 | 434654.00 | 2 |
99680 | 7457.00 | 3 |
Табела поруџбине:
Открићемо цустомер_ид, име и ордер_ид који су с њим повезани десним спајањем.
Упит:
SELECT cust.Customer_id, cust.Name, ord.Order_id
FROM customer cust
RIGHT JOIN order ord
ON cust.customer_id = ord.customer_id;
Излаз:
Идентификација купца | Име | ИД поруџбине |
2 | нула | 19976 |
3 | Махесх | 99680 |
4 | Сам | 19868 |
Како смо се одмах придружили, тако је упит дохватио све корисничке ИД-ове из табеле налога и заједничких записа који се налазе у обе табеле.
4. Потпуно спољашње придруживање
Потпуно вањско спајање враћа све записе из обје табеле ако постоји заједничко поље.
Пример:
Идентификација купца | Име | Град |
3 | Махесх | Бхубанесвар |
4 | Сам | Колката |
5 | РАМ | Мумбаи |
Табела клијената:
ИД поруџбине | Износ | Идентификација купца |
19868 | 7575.00 | 4 |
19976 | 434654.00 | 2 |
99680 | 7457.00 | 3 |
Табела поруџбине:
Открићемо цустомер_ид, име и ордер_ид који су с њим повезани помоћу пуног спољног спајања.
Упит:
SELECT cust.Customer_id, cust.Name, ord.Order_id
FROM customer cust
FULL OUTER JOIN order ord
ON cust.customer_id = ord.customer_id;
Излаз:
Идентификација купца | Име | ИД поруџбине |
2 | нула | 19976 |
3 | Махесх | 99680 |
4 | Сам | 19868 |
5 | РАМ | нула |
Овај потпуни спољни спој преузео је све ИД-ове клијента из корисничке таблице, као и таблицу налога.
5. Самостално се придружите
Само-придруживање је редовно придруживање и овде се стола спаја само са собом.
Емп_ид | Име | Бр. телефона | Град | Земља |
1001 | Р. Мадхван | 9687687698 | Бангалор | Индија |
1002 | Гобу Схарма | 9856453423 | Пуне | Индија |
1003 | Дебасисх Дас | 8765456787 | Мумбаи | Индија |
1004 | Амит Роут | 4567788635 | Пуне | Индија |
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;
Излаз :
Име запосленог1 | Емплоиее_наме2 | е1.цити |
Гобу Схарма | Амит Роут | Пуне |
Амит Роут | Гобу Схарма | Пуне |
6. Цросс Јоин
Ово спајање даје резултат када се број редова у првој табели умножи са редовима у другој табели. Ова врста резултата назива се картезијански производ. Ако користимо ВХЕРЕ клаузулу с овим придруживањем, тада ће ово радити као унутрашње спајање.
Пример:
Прод_ид | Назив производа | Прод_унит | Цомпани_ид |
1 | Цхек мик | Ком | 12 |
2 | Цхеез-ит | Ком | 15 |
3 | Бисквит | ком | 16 |
Табела производа :
Цомпани_ид | Име компаније | Цомпани_цити |
15 | Фоодиес | Делхи |
16 | Јацк н Јилл | Цуттацк |
17 | Природна | Бангалор |
Компанија Табела:
На ове табеле ћемо применити унакрсни спој.
Упит :
SELECT p.product_name, p.prod_unit, c.company_name
FROM product p
CROSS JOIN company c;
Излаз :
п.продуцт_наме | п.прод_унит | ц.цомпани_наме |
Цхек мик | Ком | Фоодиес |
Цхеез-ит | Ком | Фоодиес |
Бисквит | Ком | Фоодиес |
Цхек мик | Ком | Јацк н Јилл |
Цхеез-ит | Ком | Јацк н Јилл |
Бисквит | Ком | Јацк н Јилл |
Цхек мик | Ком | Природна |
Цхеез-ит | Ком | Природна |
Бисквит | Ком | Природна |
Закључак
Значај ових спајања је веома важан за рад у сценаријима у стварном времену, као и за неке друге технологије. У визуализацијама попут Таблеау-а и Повер БИ-а, спајања играју виталну улогу. Структурирана пракса овога је кључна за уградњу ових нових техника и вештина.
Препоручени чланак
Ово је водич за придруживања у МиСКЛ-у. Овде смо расправљали о првих 6 врста придруживања у МиСКЛ-у као што су Унутрашња, Лева, Десна, Потпуна, Селф, Цросс и њени примери заједно са Упитом и Излазом. такође можете да прођете кроз наше предложене чланке да бисте сазнали више -
- Топ 10 МиСКЛ команди
- Увод у МиСКЛ операторе
- МиСКЛ вс СКЛите | Топ 14 поређење
- Топ 23 МиСКЛ Стринг функције
- Објасните Инсерт Цомманд у МиСКЛ-у са примерима
- Топ 6 разлике примарног и иностраног кључа