Johdatus liittymiin MySQL: ssä

MySQL Joins on tärkeä rooli, kun joudumme yhdistämään kaksi taulukkoa yhdessä perustuen yhteen tai useampaan kahden taulukon yhteiseen arvoon.

Esimerkki : Oletetaan, että meillä on kaksi taulukkoa, yksi on työntekijätaulukko, joka koostuu työntekijän tunnuksesta, phn_nosta, palkasta ja osastosta. Toinen taulukko on osoitetaulukko, joka koostuu työntekijän tunnuksesta ja osoitteesta. Jos meidän on selvitettävä työntekijän tunnus, osasto ja osoite, meidän on liityttävä molempiin taulukoihin, jotka jakavat yhteisen kentän työntekijän tunnukseksi.

Kysely :

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

MySQL: n kuusi suosituinta liittymistyyppiä

MySQL: ssä on erityyppisiä liittymiä. Alla mainitut liittymiset kohtaavat päivittäisessä käytössä ja ovat hyödyllisimpiä suorittaessaan monia kyselyitä tosiasiallisissa tilanteissa.

  1. Sisäinen liittyminen
  2. Vasen liittyä
  3. Oikea liittyminen
  4. Täysi ulompi liitos
  5. Itseliitos
  6. Risti liittyä

1. Sisäinen liittyminen

Sisäinen liittymä palauttaa arvon, joka vastaa molemmissa taulukoissa.

Tämä osa tulee tulosteena yllä olevan kuvan osoittamalla tavalla.

Esimerkki 1:

Emp_id osasto palkkaus
1001 SE 1000
1002 CSR 800
1003 SE 2000

Tämä on työntekijöiden taulukko.

Emp_id Osoite
1002 Delhi
1003 Bangalore
1005 Bbsr

Tässä on näiden työntekijöiden osoitetaulukko. Vanhemman taulukon työntekijän ensisijaista avainta emp_id käytetään vieraana avaimena osoitetaulussa, joka on alataulukko. Löydämme yhden työntekijän tunnus, osasto ja osoite käyttämällä sisäistä liittymää. Koska sisäiset liittymistilat, se hakee tietueet, jotka ovat läsnä / yhteisiä molemmissa taulukoissa.

kysely:

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

Annamme aliaksen taulukonimeen vain välttääksemme aikaavieviä. Yllä olevassa kyselyssä käytämme alias 'emp' työntekijätaulukolle ja 'ads' osoitetaululle.

lähtö:

Emp_id osasto Osoite
1002 CSR Delhi
1003 SE Bangalore

Kuten yllä olevassa esimerkissä emp_id 1002 ja 1003 olivat yhteisiä molempien taulukoiden välillä, sisäinen liittymiskomento hakee tulosteen vain näille työntekijöille.

Esimerkki 2:

Täällä meillä on 2 taulukkoa, taulukko1 ja taulukko2. Molemmat taulukot koostuvat yhdestä attribuutista vastaavasti sarakkeina A ja sarakkeina B.

Pöytä 1

Sarake A
1
1
2
3
4

taulukko 2

Sarake B
1
2
2
3
3
5

kysely:

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

lähtö:

Sarake A Sarake B
1 1
1 Tyhjä
2 2
Tyhjä 2
3 3
Tyhjä 3

2. Vasen liittyminen

Tämä yhdistäminen palauttaa kaikki tietueet vasemmalta taulukolta ja vastaavat tietueet oikealta taulukolta.

Kuten yllä olevasta kaaviosta käy ilmi, se koostuu kaikista taulukon A tietueista ja A: n ja B: n tietueista.

Esimerkki 1:

Asiakas ID Nimi Kaupunki
1 Harish Cuttack
2 David Bangalore
3 Mahesh Bhubaneswar
4 sam Kolkata

Asiakaspöytä:

Tilausnumero Määrä Asiakas ID
19868 7575, 00 4
19976 434654, 00 2
99680 7457, 00 3

Tilaustaulukko:

Selvitämme asiakkaan tunnuksen, nimen ja tilausnumeron käyttämällä vasenta liittymää.

kysely:

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

lähtö:

Asiakas ID NimiTilausnumero
1 Harish tyhjä
2 David 19976
3 Mahesh 99680
4 sam 19868

Kuten keskustelimme tästä vasemmasta liittymisestä, haettiin kaikki asiakastunnukset asiakaspöydältä ja yhteiset tunnukset molempien taulukoiden välillä. Asiakkaan_id '1' kohdalla se näkyy nollana, koska 'asiakas' tunnusta 1 ei ole tilaustaulukossa.

Esimerkki 2:

Täällä meillä on 2 pöytää, taulukko1 ja taulukko2. Molemmat taulukot koostuvat yhdestä attribuutista vastaavasti sarakkeina A ja sarakkeina B.

Pöytä 1

Sarake A
1
1
2
2
3

taulukko 2

Sarake B
1
2
2
4
4
5
5

kysely:

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

Sarake A Sarake B
1 1
1 Tyhjä
2 2
2 2
3 Tyhjä

3. Liity oikein

Tämä yhdistäminen palauttaa kaikki tietueet oikealta taulukolta ja vastaavat tietueet vasemmalta taulukolta.

Yllä oleva kaavio osoittaa, että se noutaa kaikki tietueet taulukosta B ja molemmissa taulukoissa olevan yhteisen tietueen.

Esimerkki:

Asiakas ID Nimi Kaupunki
3 Mahesh Bhubaneswar
4 sam Kolkata
5 RAM Mumbai

Asiakaspöytä:

Tilausnumero Määrä Asiakas ID
19868 7575, 00 4
19976 434654, 00 2
99680 7457, 00 3

Tilaustaulukko:

Selvitämme asiaan liittyvän asiakkaan_nimen, nimen ja tilausnumeron oikealla liittymisellä.

kysely:

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

lähtö:

Asiakas ID Nimi Tilausnumero
2 tyhjä 19976
3 Mahesh 99680
4 sam 19868

Kun teimme oikean liittymisen täällä, niin kysely haki kaikki asiakkaan tunnukset tilaustaulusta ja molemmissa taulukoissa olevat yhteiset tietueet.

4. Täysi ulkoinen liittyminen

Täysi ulkoinen liitos palauttaa kaikki tietueet molemmista taulukoista, jos on yhteinen kenttä jaettu.

Esimerkki:

Asiakas ID Nimi Kaupunki
3 Mahesh Bhubaneswar
4 sam Kolkata
5 RAM Mumbai

Asiakaspöytä:

Tilausnumero Määrä Asiakas ID
19868 7575, 00 4
19976 434654, 00 2
99680 7457, 00 3

Tilaustaulukko:

Selvitämme siihen liittyvät asiakkaan_nimi, nimi ja tilaustunnus käyttämällä täydellistä ulkoista liittymää.

kysely:

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

lähtö:

Asiakas ID Nimi Tilausnumero
2 tyhjä 19976
3 Mahesh 99680
4 sam 19868
5 RAM tyhjä

Tämä täysi ulompi liittymä haki kaikki asiakkaan tunnukset asiakaspöydältä samoin kuin tilauspöytä.

5. Liity itse

Itse liittyminen on säännöllinen liittyminen ja tässä taulukko liittyy vain itsensä kanssa.

Emp_id Nimi Puhelin ei Kaupunki Maa
1001 R. Madhvan 9687687698 Bangalore Intia
1002 Gobu Sharma 9856453423 Pune Intia
1003 Debasish Das 8765456787 Mumbai Intia
1004 Amit Rout 4567788635 Pune Intia
1005 Sambit Kar 8789887873 Hyderabad Intia

Tässä on useista kentistä koostuva työntekijätaulukko. Selvitämme samassa kaupungissa asuvat työntekijät.

Kysely :

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;

Tulos :

Employee_name1 Employee_name2 e1.city
Gobu Sharma Amit Rout Pune
Amit Rout Gobu Sharma Pune

6. Rajat liittyä

Tämä yhdistäminen tuottaa tuloksen, jossa ensimmäisen taulukon rivien lukumäärä kerrotaan toisen taulukon rivien kanssa. Tällaista tulosta kutsutaan Cartesian-tuotteeksi. Jos käytämme WHERE-lauseketta tämän liittymisen yhteydessä, se toimii sisäisenä liittymänä.

Esimerkki:

Prod_id Tuotteen nimi Prod_unit Company_id
1 Chex-sekoitus kpl 12
2 Cheez-it kpl 15
3 Keksi kpl 16

Tuotelista :

Company_id Yrityksen nimi Company_city
15 foodies Delhi
16 Jack n Jill Cuttack
17 luonnollinen Bangalore

Yritystaulukko:

Sovelemme ristiin liittymistä näihin taulukoihin.

Kysely :

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

Tulos :

p.product_name p.prod_unit c.company_name
Chex-sekoitus kpl foodies
Cheez-it kpl foodies
Keksi kpl foodies
Chex-sekoitus kpl Jack n Jill
Cheez-it kpl Jack n Jill
Keksi kpl Jack n Jill
Chex-sekoitus kpl luonnollinen
Cheez-it kpl luonnollinen
Keksi kpl luonnollinen

johtopäätös

Näiden liittymien merkitys on erittäin tärkeä, kun työskentelet reaaliaikaisissa skenaarioissa ja myös joissakin muissa tekniikoissa. Näkyvyyksissä, kuten Tableau ja Power BI, liittymisillä on tärkeä rooli. Tämän jäsennelty käytäntö on avain näiden uusien tekniikoiden ja taitojen upottamiseen.

Suositeltava artikkeli

Tämä on opas Liittymät MySQL: ään. Tässä keskustellaan MySQL: n 6 suosituimmasta liittymistyypistä, kuten Sisäinen, Vasen, Oikea, Täysi, Itse, Risti ja sen esimerkit sekä Kysely ja Tulos. voit myös käydä läpi ehdotetut artikkelimme saadaksesi lisätietoja -

  1. 10 parasta MySQL-komentoa
  2. Johdanto MySQL-operaattoreihin
  3. MySQL vs. SQLite | 14 suosituinta vertailua
  4. 23 suosituinta MySQL-merkkijono-toimintoa
  5. Selitä MySQL: n lisäyskomento esimerkeillä
  6. Ensisijaisen avaimen ja vieraan avaimen kuusi tärkeintä eroa