SQL JOIN
SQL-liitosta käytetään tietojen (rivien tai sarakkeiden) noutamiseen tai yhdistämiseen kahdesta tai useammasta taulukosta määritettyjen ehtojen perusteella.
Taulukko 1: Järjestys
Tilausnumero | Asiakas ID | TilauksenNimi | Tuotteen nimi |
---|---|---|---|
12025 | 101 | Peter | ABC |
12030 | 105 | Robert | XYX |
12032 | 110 | James | XYZ |
12034 | 115 | Andrew | PQR |
12035 | 120 | Mathew | AAA |
Taulukko 2: Asiakas
Asiakas ID | Asiakkaan nimi | Maa |
---|---|---|
100 | Sotkuinen | Maxico |
101 | Prinssi | Taiwan |
103 | Maria Fernandez | Turkki |
105 | Jasmiini | Pariisi |
110 | Faf Weasel | Indonesia |
120 | Rooman raketti | Venäjä |
Nyt meillä on kaksi pöytää Tilaus ja Asiakas . Tuolla on Asiakas ID sarake on yhteinen molemmissa taulukoissa. Joten kirjoita SQL-kysely määrittääksesi yleinen suhde osumien tietueiden valitsemiseksi molemmista taulukoista.
Select Order.OrderID, Customer.CustomerName, Customer.Country, Order.ProductName from Order INNER JOIN Customer ON Order.CustomerID = Customer.CustomerID;
Yllä olevan suorittamisen jälkeen SQL kyselyitä, se tuottaa seuraavan tulosteen:
Tilausnumero | Asiakkaan nimi | Maa | Tuotteen nimi |
---|---|---|---|
12025 | Prinssi | Taiwan | ABC |
12030 | Jasmiini | Pariisi | XYX |
12032 | Faf Weasel | Indonesia | XYZ |
12035 | Rooman raketti | Venäjä | AAA |
SQL-liittymien tyypit
SQL:ssä käytetään erilaisia liitoksia:
- Sisäinen liitos / yksinkertainen liitos
- Vasen ulompi liitos / vasen liitos
- Oikea ulkoliitos / oikea liitos
- Täysi ulkoinen liitos
- Liity ristiin
- Liity itse
Sisäinen liitos
Sisäliitosta käytetään valitsemaan kaikki vastaavat rivit tai sarakkeet molemmissa taulukoissa tai niin kauan kuin määritetty ehto on voimassa SQL:ssä.
Syntaksi:
Select column_1, column_2, column_3 FROM table_1 INNER JOIN table_2 ON table_1.column = table_2.column;
Voimme esittää sisäliitoksen Venn-kaavion avulla seuraavasti:
Taulukko 1: Opiskelijat
Opiskelijanumero | Opiskelijan nimi | Aihe | Opettajan ID |
---|---|---|---|
101 | Alexandra | Tietokone Tiede | T201 |
102 | Charles | Taloustiede | T202 |
103 | Tom Cruise | Tietokone Tiede | T201 |
104 | Aaron Finch | Elektroniikka | T203 |
105 | Siemen Bajoff | Web-suunnittelu | T204 |
106 | Christopher | Englanninkielinen kirjallisuus | T205 |
107 | Denim | Muotisuunnittelija | T206 |
Taulukko 2: Opettajat
Opettajan ID | Opettajan nimi | Opettajan sähköposti |
---|---|---|
T201 | herra Davis | [sähköposti suojattu] |
T202 | Rouva Jonas | [sähköposti suojattu] |
T201 | herra Davis | [sähköposti suojattu] |
T204 | Rouva Lopez | [sähköposti suojattu] |
T205 | Rouva Wiley | [sähköposti suojattu] |
T206 | Herra Bean | [sähköposti suojattu] |
Meillä on kaksi pöytää: Opiskelijat ja Opettajat Taulukot. Kirjoitetaan SQL-kyselyt liittyäksesi taulukkoon käyttämällä SISÄLIITTYMINEN seuraavasti:
Select Student_ID, StudentName, TeacherName, TeacherEmail FROM Students INNER JOIN Teachers ON Students.TeacherID = Teachers.TeacherID;
Kun kysely on suoritettu, se tuottaa alla olevan taulukon.
Luonnollinen liittyminen
Se on sisäinen tyyppi, joka yhdistää kaksi tai useampia taulukkoja saman sarakkeen nimen perusteella ja jolla on sama tietotyyppi molemmissa taulukoissa.
Syntaksi:
Select * from tablename1 Natural JOIN tablename_2;
Meillä on kaksi pöytää: Opiskelijat ja Opettajat Taulukot. Kirjoitetaan SQL-kyselyt liittyäksesi taulukkoon käyttämällä Luonnollinen LIITTY seuraavasti:
Select * from Students Natural JOIN Teachers;
Yllä olevan kyselyn suorittamisen jälkeen se tuottaa seuraavan taulukon.
LEFT LIITY
The LEFT LIITY käytetään hakemaan kaikki tietueet vasemmasta taulukosta (taulukko1) ja vastaavat rivit tai sarakkeet oikeanpuoleisesta taulukosta (taulukko2). Jos kumpikaan taulukko ei sisällä vastaavia rivejä tai sarakkeita, se palauttaa NULL-arvon.
Syntaksi:
Select column_1, column_2, column(s) FROM table_1 LEFT JOIN table_2 ON table_1.column_name = table_2.column_name;
Voimme myös esittää vasemman liitoksen Venn-kaavion kautta seuraavasti:
Huomautus: Joissakin tietokannoista LEFT JOIN tunnetaan myös nimellä LEFT OUTTER JOIN.
Taulukko 1: Tuotetiedot
Tuotekoodi | Tuotteen nimi | Määrä |
---|---|---|
Pro101 | Kannettava tietokone | 56 000 |
Pro102 | mobiili | 38 000 |
Pro103 | Kuulokkeet | 5000 |
Pro104 | Televisio | 25 000 |
Pro105 | iPad | 60 000 |
Taulukko 2: Asiakas_tiedot
muuntaa charista int javaksi
Asiakkaan nimi | Asiakasosoite | Asiakkaan ikä | Tuotekoodi |
---|---|---|---|
Martin Guptil | San Francisco, USA | 26 | Pro101 |
James | Australia | 29 | Pro103 |
Ambati Williamson | Uusi Seelanti | 27 | Pro102 |
Jofra Archer | Etelä-Afrikka | 24 | Pro105 |
Kate Wiley | Australia | kaksikymmentä | Pro103 |
Meillä on kaksi pöytää: Tuotteen yksityiskohdat ja Asiakkaan tiedot Taulukot. Kirjoitetaan SQL-kyselyt liittyäksesi taulukkoon käyttämällä LEFT LIITY seuraavasti:
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details LEFT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID;
Kun kysely on suoritettu, se tuottaa seuraavan taulukon.
RIGHT JOIN tai RIGHT Outer JOIN:
The OIKEA LIITTYMINEN käytetään hakemaan kaikki tietueet oikeasta taulukosta (taulukko2) ja vastaavat rivit tai sarakkeet vasemmasta taulukosta (taulukko1). Jos kumpikaan taulukko ei sisällä vastaavia rivejä tai sarakkeita, se palauttaa NULL-arvon.
Syntaksi:
Select column_1, column_2, column(s) FROM table_1 RIGHT JOIN table_2 ON table_1.column_name = table_2.column_name;
Voimme myös esittää oikean liitoksen Venn-kaavion avulla seuraavasti:
Huomautus: Joissakin tietokannoista RIGHT JOIN tunnetaan myös nimellä RIGHT OUTTER JOIN.
Taulukko 1: Tuotetiedot
ID | Tuotteen nimi | Määrä |
---|---|---|
Pro101 | Kannettava tietokone | 56 000 |
Pro102 | mobiili | 38 000 |
Pro103 | Kuulokkeet | 5000 |
Pro104 | Televisio | 25 000 |
Pro105 | iPad | 60 000 |
Taulukko 2: Asiakas_tiedot
Asiakkaan nimi | Asiakasosoite | Asiakkaan ikä | Tuotekoodi |
---|---|---|---|
Martin Guptil | San Francisco, USA | 26 | Pro101 |
James | Australia | 29 | Pro103 |
Ambati Williamson | Uusi Seelanti | 27 | Pro102 |
Jofra Archer | Etelä-Afrikka | 24 | Pro105 |
Enne | Englanti | 29 | Pro107 |
Morgan | Englanti | kaksikymmentä | Pro108 |
Meillä on kaksi pöytää: Tuotteen yksityiskohdat ja Asiakkaan tiedot Taulukot. Kirjoitetaan SQL-kyselyt liittyäksesi taulukkoon käyttämällä OIKEA LIITTYMINEN seuraavasti:
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details LEFT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID;
Kun kysely on suoritettu, se tuottaa alla olevan taulukon.
FULL JOIN tai FULL Outer JOIN:
Se on molempien tulosten yhdistelmä LEFT LIITY ja OIKEA LIITTYMINEN . Yhdistetyt taulukot palauttavat kaikki tietueet molemmista taulukoista ja jos taulukosta ei löydy osumia, se asettaa NULL:n. Sitä kutsutaan myös a TÄYDELLINEN ULKOLIITTYMINEN .
Syntaksi:
etsi merkkijonosta c++
Select column_1, column_2, column(s) FROM table_1 FULL JOIN table_2 ON table_1.column_name = table_2.column_name;
Tai, TÄYDELLINEN ULKOLIITTYMINEN
Select column_1, column_2, column(s) FROM table_1 FULL OUTER JOIN table_2 ON table_1.column_name = table_2.column_name;
Voimme myös esittää koko ulkoliitoksen Venn-kaavion avulla seuraavasti:
Taulukko 1: Tuotetiedot
ID | Tuotteen nimi | Määrä |
---|---|---|
Pro101 | Kannettava tietokone | 56 000 |
Pro102 | mobiili | 38 000 |
Pro103 | Kuulokkeet | 5000 |
Pro104 | Televisio | 25 000 |
Pro105 | iPad | 60 000 |
Taulukko 2: Asiakas_tiedot
Asiakkaan nimi | Asiakasosoite | Asiakkaan ikä | Tuotekoodi |
---|---|---|---|
Martin Guptil | San Francisco, USA | 26 | Pro101 |
James | Australia | 29 | Pro103 |
Ambati Williamson | Uusi Seelanti | 27 | Pro102 |
Jofra Archer | Etelä-Afrikka | 24 | Pro105 |
Enne | Englanti | 29 | Pro107 |
Morgan | Englanti | kaksikymmentä | Pro108 |
Meillä on kaksi pöytää: Tuotteen yksityiskohdat ja Asiakkaan tiedot Taulukot. Kirjoitetaan SQL-kyselyt liittyäksesi taulukkoon käyttämällä KOKO LIITY seuraavasti:
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details FULL JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID;
Kun kysely on suoritettu, se tuottaa alla olevan taulukon.
Huomautus: MySQL ei tue FULL JOIN -käsitteitä, joten voimme käyttää UNION ALL -lausetta yhdistääksesi molemmat taulukot.
Tässä on syntaksi kohteelle UNIONI KAIKKI Lauseke taulukoiden yhdistämisestä.
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details LEFT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID UNION ALL Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details RIGHT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID
RISTILIITY
Se tunnetaan myös nimellä CARTESIAN JOIN , joka palauttaa kahden tai useamman yhdistetyn taulukon karteesisen tulon. The RISTILIITY tuottaa taulukon, joka yhdistää ensimmäisen taulukon jokaisen rivin jokaiseen toiseen taulukon riviin. Ristiliittymiseen ei vaadita mitään ehtoa.
Syntaksi:
Select * from table_1 cross join table_2;
Tai,
Select column1, column2, column3 FROM table_1, table_2;
Taulukko 1: Tuotetiedot
ID | Tuotteen nimi | Määrä |
---|---|---|
Pro101 | Kannettava tietokone | 56 000 |
Pro102 | mobiili | 38 000 |
Pro103 | Kuulokkeet | 5000 |
Pro104 | Televisio | 25 000 |
Pro105 | iPad | 60 000 |
Taulukko 2: Asiakas_tiedot
Asiakkaan nimi | Asiakasosoite | Asiakkaan ikä | Tuotekoodi |
---|---|---|---|
Martin Guptil | San Francisco, USA | 26 | Pro101 |
James | Australia | 29 | Pro103 |
Ambati Williamson | Uusi Seelanti | 27 | Pro102 |
Jofra Archer | Etelä-Afrikka | 24 | Pro105 |
Enne | Englanti | 29 | Pro107 |
Morgan | Englanti | kaksikymmentä | Pro108 |
Meillä on kaksi pöytää: Tuotteen yksityiskohdat ja Asiakkaan tiedot Taulukot. Kirjoitetaan SQL-kyselyt liittyäksesi taulukkoon käyttämällä KOKO LIITY seuraavasti:
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details, Customer_Details;
Kun kysely on suoritettu, se tuottaa alla olevan taulukon.
LIITY ITSE
Se on SELF JOIN, jota käytetään taulukon luomiseen yhdistämällä itsensä, koska taulukkoja oli kaksi. Se nimeää väliaikaisesti ainakin yhden taulukon SQL-käskyssä.
Syntaksi:
Select column1, column2, column(s) FROM table_1 Tbl1, table_2 Tbl2 WHERE condition;
pöytä 1 ja Tbl2 ovat kaksi erilaista taulukkoaliasta samalle taulukolle.
Taulukko 1: Tuotetiedot
ID | Tuotteen nimi | Määrä |
---|---|---|
Pro101 | Kannettava tietokone | 56 000 |
Pro102 | mobiili | 38 000 |
Pro103 | Kuulokkeet | 5000 |
Pro104 | Televisio | 25 000 |
Pro105 | iPad | 60 000 |
Kirjoitetaan SQL-kyselyt liittyäksesi taulukkoon käyttämällä LIITY ITSE seuraavasti:
Select TB.ID, TB.ProductName FROM Product_Details TB, Product_Details TB2 WHERE TB.AMOUNT <tb2.amount; < pre> <p>After executing the query, it produces the below table. </p> <img src="//techcodeview.com/img/sql-tutorial/44/types-sql-join-12.webp" alt="Types of SQL JOIN"> <hr></tb2.amount;>