Sissejuhatus liitumistesse MySQL-is

MySQL Joins mängib olulist rolli, kui peame ühendama kaks tabelit, mis põhinevad ühel või mitmel ühisel väärtusel, mida kaks tabelit jagavad.

Näide : Mõelgem, et meil on kaks tabelit, üks on töötajate tabel, mis koosneb töötaja_id, phn_no, palk ja osakond. Teine tabel on aadressitabel, mis koosneb töötaja_ID ja aadressist. Kui peame välja selgitama töötaja_ID, osakonna ja aadressi, peame ühinema mõlemad tabelid, mis jagavad ühist välja kui töötaja_id.

Päring :

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

MySQL-is 6 parimat liitumistüüpi

MySQL-is on erinevat tüüpi liitumisi. Allpool nimetatud liitumised puutuvad kokku igapäevases kasutuses ja on kõige kasulikumad, kui reaalajas stsenaariumi korral paljusid päringuid teha.

  1. Sisemine liitumine
  2. Vasak liitumine
  3. Parempoolne liitumine
  4. Täielik välimine liitumine
  5. Ise liituda
  6. Rist liituda

1. Sisemine liitumine

Siseühendus tagastab väärtuse, mis sobib mõlemas tabelis.

See osa tuleb väljundis, nagu on näidatud ülaltoodud pildil.

Näide nr 1:

Tühi_id Osakond Palk
1001 IT 1000
1002 CSR 800
1003 IT 2000

See on töötajate tabel.

Tühi_id Aadress
1002 Delhi
1003 Bangalore
1005 Bbsr

Siin on nende töötajate aadressitabel. Vanematabeli töötaja peamist võtit emp_id kasutatakse võõrvõtmena aadressitabelis, mis on alamlaud. Leiame sisemise liitumise abil ühe töötaja emp_id, osakonna ja aadressi. Kuna sisemised liitumisseisundid, see tõmbab kirjed, mis on olemas / levinud mõlemas tabelis.

Päring:

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

Anname tabelinimele varjunime lihtsalt selleks, et vältida rohkem aeganõudevust. Ülaltoodud päringus kasutame töötajate tabeli jaoks pseudonüümi 'emp' ja aadressitabeli jaoks 'reklaame'.

Väljund:

Tühi_id Osakond Aadress
1002 CSR Delhi
1003 IT Bangalore

Nagu ülaltoodud näites olid emp_id 1002 ja 1003 mõlema tabeli vahel ühised, tõmbab sisemine liitmiskäsk väljundi ainult nende töötajate jaoks.

Näide 2:

Siin on meil 2 tabelit, tabel1 ja tabel2. Mõlemad tabelid koosnevad vastavalt ühest veerust A ja B atribuudist.

Tabel 1

A veerg
1
1
2
3
4

Tabel2

B veerg
1
2
2
3
3
5

Päring:

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

Väljund:

A veerg B veerg
1 1
1 Null
2 2
Null 2
3 3
Null 3

2. Vasak liitumine

See liitumine tagastab kõik kirjed vasakult tabelilt ja vastavad kirjed paremalt tabelilt.

Nagu ülaltoodud diagramm näitab, koosneb see kõigist tabeli A kirjetest ning ühistest A ja B kirjetest.

Näide nr 1:

Kliendi ID Nimi Linn
1 Harish Cuttack
2 David Bangalore
3 Mahesh Bhubaneswar
4 Sam Kolkata

Klientide tabel:

Tellimuse ID Summa Kliendi ID
19868 7575.00 4
19976 434654.00 2
99680 7457.00 3

Tellimustabel:

Vasakpoolse liitumise abil saame teada kliendi ID, nime ja tellimis_ID.

Päring:

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

Väljund:

Kliendi ID NimiTellimuse ID
1 Harish null
2 David 19976
3 Mahesh 99680
4 Sam 19868

Nagu me sellest arutasime, tõmbas vasakpoolne liitumine kliendi tabelist kõik kliendi id ja mõlema tabeli ühised. Kliendid_id '1' kuvatakse kui 'null', kuna väärtust '1' kliendi_id ei ole tellimustabelis.

Näide 2:

Siin on meil 2 tabelit, tabel1 ja tabel2. Mõlemad tabelid koosnevad vastavalt ühest veerust A ja B atribuudist.

Tabel 1

A veerg
1
1
2
2
3

Tabel2

B veerg
1
2
2
4
4
5
5

Päring:

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

A veerg B veerg
1 1
1 Null
2 2
2 2
3 Null

3. Parempoolne liitumine

See liitumine tagastab kõik kirjed paremalt tabelilt ja vastavad kirjed vasakult tabelilt.

Ülaltoodud diagramm näitab, et see tõmbab kõik kirjed tabelist B ja ühistest, mis on olemas mõlemas tabelis.

Näide:

Kliendi ID Nimi Linn
3 Mahesh Bhubaneswar
4 Sam Kolkata
5 Ramm Mumbai

Klientide tabel:

Tellimuse ID Summa Kliendi ID
19868 7575.00 4
19976 434654.00 2
99680 7457.00 3

Tellimustabel:

Õige liitumise abil saame teada kliendi ID, nime ja tellimuse_id, mis on sellega seotud.

Päring:

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

Väljund:

Kliendi ID Nimi Tellimuse ID
2 null 19976
3 Mahesh 99680
4 Sam 19868

Kui siin õigesti liitusime, tõmbas päring tellimuse tabelist kõik kliendi id ja mõlemas tabelis olevad ühised kirjed.

4. Täielik väline liitumine

Täielik välimine liitmine tagastab kõik kirjed mõlemast tabelist, kui ühist välja on jagatud.

Näide:

Kliendi ID Nimi Linn
3 Mahesh Bhubaneswar
4 Sam Kolkata
5 Ramm Mumbai

Klientide tabel:

Tellimuse ID Summa Kliendi ID
19868 7575.00 4
19976 434654.00 2
99680 7457.00 3

Tellimustabel:

Täpse välimise liitumise abil saame teada kliendi ID, nime ja tellimuse_ID, mis on sellega seotud.

Päring:

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

Väljund:

Kliendi ID Nimi Tellimuse ID
2 null 19976
3 Mahesh 99680
4 Sam 19868
5 Ramm null

See täielik välimine liitumine tõi kõik kliendi ID-d kliendilaualt ja tellimustabelilt.

5. Ise liitumine

Ise liitumine on regulaarne liitumine ja siin ühineb tabel ainult endaga.

Tühi_id Nimi Telefoninumber Linn Riik
1001 R. Madhvan 9687687698 Bangalore India
1002 Gobu Sharma 9856453423 Pune India
1003 Debasish Das 8765456787 Mumbai India
1004 Amit Rout 4567788635 Pune India
1005 Sambit Kar 8789887873 Hyderabad India

Siin on mitmest väljast koosnev töötajate tabel. Saame teada samas linnas elavad töötajad.

Päring :

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;

Väljund :

Töötaja_nimi1 Töötaja_nimi2 e1.linn
Gobu Sharma Amit Rout Pune
Amit Rout Gobu Sharma Pune

6. Risti liitumine

See liitmine annab tulemuse, kus esimese tabeli ridade arv korrutatakse teise tabeli ridadega. Sellist tulemust nimetatakse Cartesiuse tooteks. Kui me kasutame selle liitumisega WHERE klauslit, siis toimib see sisemise liitumisena.

Näide:

Prod_id Tootenimi Prod_unit Ettevõtte_id
1 Chexi segu Tk 12
2 Cheez-it Tk 15
3 Biskviit tk 16

Tootetabel:

Ettevõtte_id Ettevõtte_nimi Ettevõtte_linn
15 Toitumised Delhi
16 Jack n Jill Cuttack
17 Looduslik Bangalore

Ettevõtte tabel:

Nendele tabelitele rakendame ristühendust.

Päring :

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

Väljund :

p.toote_nimi p.prod_unit c.ettevõtte_nimi
Chexi segu Tk Toitumised
Cheez-it Tk Toitumised
Biskviit Tk Toitumised
Chexi segu Tk Jack n Jill
Cheez-it Tk Jack n Jill
Biskviit Tk Jack n Jill
Chexi segu Tk Looduslik
Cheez-it Tk Looduslik
Biskviit Tk Looduslik

Järeldus

Nende liitumiste olulisus on väga oluline nii reaalajas stsenaariumide kui ka mõne muu tehnoloogia kasutamisel. Sellistes visualisatsioonides nagu Tableau ja Power BI mängivad liitumised üliolulist rolli. Selle struktureeritud praktika on nende uute tehnikate ja oskuste kinnistamiseks võtmetähtsusega.

Soovitatav artikkel

See on MySQL-i liitumiste juhend. Siin käsitleme MySQL-i kuut liitumistüüpi, näiteks Sise-, Vasak-, Parempoolne, Täielik, Ise, Rist ja selle näited koos päringu ja väljundiga. lisateabe saamiseks võite tutvuda ka meie soovitatud artiklitega -

  1. 10 parimat MySQL-i käsku
  2. Sissejuhatus MySQL-i operaatoritesse
  3. MySQL vs SQLite | 14 parimat võrdlust
  4. MySQL Stringi 23 parimat funktsiooni
  5. Selgitage lisamiskäsku MySQL-is näidetega
  6. Primaarvõtme ja võõra võtme 6 peamist erinevust