Uvod v Pridružitve v MySQL
MySQL Joins igra pomembno vlogo, ko moramo združiti dve tabeli skupaj na podlagi ene ali več skupnih vrednosti, ki jih delita dve tabeli.
Primer : Razmislimo, da imamo dve tabeli, ena je tabela zaposlenih, ki jo sestavljajo zaposleni_id, phn_no, plača in oddelek. Druga tabela je tabela naslovov, ki jo sestavljajo zaposleni_id in naslov. Če moramo najti zaposleni_id, oddelek in naslov, se moramo pridružiti obema tabelama, ki si delita skupno polje kot zaposleni_id.
Poizvedba :
SELECT e1.employee_id, e1.department, a1.address
FROM employee e1
INNER JOIN address a1
ON e1.employee_id = a1.employee_id;
Prvih 6 vrst združitev v MySQL
V MySQL obstajajo različne vrste združitev. Spodaj omenjena združenja se srečujejo v vsakodnevni uporabi in so najbolj uporabna pri izvajanju številnih poizvedb v resničnih primerih.
- Notranji pridružite
- Levi spoj
- Desno se pridružite
- Popolni zunanji spoj
- Samopriključi se
- Križni spoj
1. Notranja združitev
Inner join vrne vrednost, ki se ujema v obeh tabelah.
Ta del je v izhodu, kot je prikazano na zgornji sliki.
1. primer:
Emp_id | Oddelek | Plača |
1001 | IT | 1000 |
1002 | CSR | 800 |
1003 | IT | 2000 |
To je tabela zaposlenih.
Emp_id | Naslov |
1002 | Delhi |
1003 | Bangalore |
1005 | Bbsr |
Tu je naslovna tabela teh zaposlenih. Primarni ključ emp_id zaposlenega v tabeli se uporablja kot tuji ključ v naslovni tabeli, ki je nadrejena tabela. Z notranjo povezavo bomo našli em_id, oddelek in naslov enega zaposlenega. Ker notranja stanja združevanja Prejema zapise, ki so v obeh tabelah prisotni / pogosti.
Poizvedba:
SELECT emp.emp_id, emp.department, ads.address
FROM employee AS emp
INNER JOIN address AS ads
ON emp.emp_id = ads.emp_id;
V ime tabele podajamo vzdevek samo zato, da ne bomo zamudili več časa. V zgornji poizvedbi uporabljamo vzdevek 'emp' za tabelo zaposlenih in 'oglasi' za naslovno tabelo.
Izhod:
Emp_id | Oddelek | Naslov |
1002 | CSR | Delhi |
1003 | IT | Bangalore |
Ker sta v zgornjem primeru emp_id 1002 in 1003 skupni med obema tabelama, notranji ukaz pridruži pridobi rezultate samo za te zaposlene.
Primer # 2:
Tu imamo 2 tabeli, table1 in table2. Obe tabeli sta sestavljeni iz enega atributa v stolpcu A in v stolpcu B.
Tabela1
Stolpec A |
1 |
1 |
2 |
3 |
4 |
Tabela2
Stolpec B |
1 |
2 |
2 |
3 |
3 |
5 |
Poizvedba:
If we apply inner join here,
SELECT * FROM Table1
INNER JOIN table2
ON columnA = columnB;
Izhod:
Stolpec A | Stolpec B |
1 | 1 |
1 | Nič |
2 | 2 |
Nič | 2 |
3 | 3 |
Nič | 3 |
2. Levo Pridružite se
To združevanje vrne vse zapise iz leve tabele in izravnane zapise iz desne tabele.
Kot prikazuje zgornji diagram, je sestavljen iz vseh zapisov tabele A in običajnih iz A in B.
1. primer:
Identifikacijska številka stranke | Ime | Mesto |
1 | Harish | Cuttack |
2 | David | Bangalore |
3 | Maheš | Bhubaneswar |
4 | Sam | Kolkata |
Tabela kupcev:
Številka naročila | Znesek | Identifikacijska številka stranke |
19868 | 7575, 00 | 4 |
19976 | 434654.00 | 2 |
99680 | 7457.00 | 3 |
Tabela naročil:
S pomočjo pridruženega levega bomo ugotovili, kakšen je customer_id, ime in vrstni red_id.
Poizvedba:
SELECT cust.Customer_id, cust.Name, ord.Order_id
FROM customer cust
LEFT JOIN order ord
ON cust.customer_id = ord.customer_id;
Izhod:
Identifikacijska številka stranke | Ime | Številka naročila |
1 | Harish | nič |
2 | David | 19976 |
3 | Maheš | 99680 |
4 | Sam | 19868 |
Medtem ko smo razpravljali o tej levi povezavi, smo prejeli ves ID stranke iz tabele stranke in običajne med obema tabelama. Za customer_id '1' bo prikazan kot 'null', ker '1' customer_id ni v tabeli naročil.
Primer # 2:
Tu imamo 2 tabeli, table1 in table2. Obe tabeli sta sestavljeni iz enega atributa v stolpcu A in v stolpcu B.
Tabela1
Stolpec A |
1 |
1 |
2 |
2 |
3 |
Tabela2
Stolpec B |
1 |
2 |
2 |
4 |
4 |
5 |
5 |
Poizvedba:
If we apply left join on above 2 tables,
SELECT * FROM table1
LEFT JOIN table2
ON columnA = columnB;
Stolpec A | Stolpec B |
1 | 1 |
1 | Nič |
2 | 2 |
2 | 2 |
3 | Nič |
3. Desno se pridruži
To združevanje vrne vse zapise iz desne tabele in ujemajoče se iz leve.
Zgornji diagram prikazuje, da prihaja do vseh zapisov iz tabele B in skupnega, ki je prisoten v obeh tabelah.
Primer:
Identifikacijska številka stranke | Ime | Mesto |
3 | Maheš | Bhubaneswar |
4 | Sam | Kolkata |
5 | Oven | Bombaj |
Tabela kupcev:
Številka naročila | Znesek | Identifikacijska številka stranke |
19868 | 7575, 00 | 4 |
19976 | 434654.00 | 2 |
99680 | 7457.00 | 3 |
Tabela naročil:
Z desno povezavo bomo ugotovili, da so z njim povezani customer_id, ime in vrstni red_id.
Poizvedba:
SELECT cust.Customer_id, cust.Name, ord.Order_id
FROM customer cust
RIGHT JOIN order ord
ON cust.customer_id = ord.customer_id;
Izhod:
Identifikacijska številka stranke | Ime | Številka naročila |
2 | nič | 19976 |
3 | Maheš | 99680 |
4 | Sam | 19868 |
Ko smo se tukaj pridružili prav tako, je poizvedba prejela ves ID stranke iz tabele naročil in skupnih zapisov, ki so v obeh tabelah.
4. Popolna zunanja pridružitev
Popolna zunanja povezava vrne vse zapise iz obeh tabel, če je skupno polje v skupni rabi.
Primer:
Identifikacijska številka stranke | Ime | Mesto |
3 | Maheš | Bhubaneswar |
4 | Sam | Kolkata |
5 | Oven | Bombaj |
Tabela kupcev:
Številka naročila | Znesek | Identifikacijska številka stranke |
19868 | 7575, 00 | 4 |
19976 | 434654.00 | 2 |
99680 | 7457.00 | 3 |
Tabela naročil:
Ugotovili bomo customer_id, ime in vrstni red_id, ki je z njim povezan, s pomočjo celotnega zunanjega združevanja.
Poizvedba:
SELECT cust.Customer_id, cust.Name, ord.Order_id
FROM customer cust
FULL OUTER JOIN order ord
ON cust.customer_id = ord.customer_id;
Izhod:
Identifikacijska številka stranke | Ime | Številka naročila |
2 | nič | 19976 |
3 | Maheš | 99680 |
4 | Sam | 19868 |
5 | Oven | nič |
Ta popolna zunanja povezava je prejela ves ID stranke iz tabele stranke in tudi tabelo naročil.
5. Pridružite se sebi
Samo-pridružitev je redna pridružitev in tu se miza združi samo s seboj.
Emp_id | Ime | Telefon_no | Mesto | Država |
1001 | R. Madhvan | 9687687698 | Bangalore | Indija |
1002 | Gobu Šarma | 9856453423 | Pune | Indija |
1003 | Pogumni Das | 8765456787 | Bombaj | Indija |
1004 | Amit Rout | 4567788635 | Pune | Indija |
1005 | Sambit Kar | 8789887873 | Hyderabad | Indija |
Tukaj je tabela zaposlenih, sestavljena iz več polj. Ugotovili bomo zaposlene, ki živijo v istem mestu.
Poizvedba :
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;
Izhod :
Ime zaposlenega1 | Ime zaposlenega2 | e1.city |
Gobu Šarma | Amit Rout | Pune |
Amit Rout | Gobu Šarma | Pune |
6. Cross Pridružite se
To združevanje povzroči rezultat, ko se število vrstic v prvi tabeli pomnoži s vrsticami v drugi tabeli. Takšen rezultat se imenuje kartuzijanski izdelek. Če s tem pridruživanjem uporabimo določbo WHERE, bo to delovalo kot notranje združevanje.
Primer:
Prod_id | Ime izdelka | Prod_unit | Company_id |
1 | Chex mešanica | Kosi | 12 |
2 | Cheez-it | Kosi | 15 |
3 | Biskvit | kos | 16 |
Tabela izdelkov:
Company_id | Ime podjetja | Podjetje_grad |
15 | Foodies | Delhi |
16 | Jack n Jill | Cuttack |
17 | Naravni | Bangalore |
Tabela podjetja :
Na te tabele bomo uporabili navzkrižno povezavo.
Poizvedba :
SELECT p.product_name, p.prod_unit, c.company_name
FROM product p
CROSS JOIN company c;
Izhod :
p.product_name | p.prod_unit | c.company_name |
Chex mešanica | Kosi | Foodies |
Cheez-it | Kosi | Foodies |
Biskvit | Kosi | Foodies |
Chex mešanica | Kosi | Jack n Jill |
Cheez-it | Kosi | Jack n Jill |
Biskvit | Kosi | Jack n Jill |
Chex mešanica | Kosi | Naravni |
Cheez-it | Kosi | Naravni |
Biskvit | Kosi | Naravni |
Zaključek
Pomen teh povezav je zelo pomemben tudi pri delu v realnem času in tudi pri nekaterih drugih tehnologijah. Pri vizualizacijah, kot sta Tableau in Power BI, imajo pridružitve ključno vlogo. Strukturirana praksa tega je ključna za vključitev teh novih tehnik in veščin.
Priporočeni članek
To je vodnik za združitve v MySQL. Tukaj razpravljamo o prvih 6 vrstah združitev v MySQL, kot so Notranji, Levi, Desni, Polni, Self, Cross in njegovi primeri, skupaj s poizvedbo in izhodi. lahko preberete tudi naše predlagane članke, če želite izvedeti več -
- Najboljših 10 ukazov MySQL
- Uvod v operaterje MySQL
- MySQL vs SQLite | Top 14 Primerjava
- Prvih 23 funkcij nizov MySQL
- Pojasnite Insert Command v MySQL s primeri
- Najboljših 6 razlik primarnega in tujega ključa