SQL:ssä sekä LEFT JOIN- että LEFT OUTER JOIN -komentoa käytetään yhdistämään tietoja kahdesta tai useammasta taulukosta toisiinsa liittyvän sarakkeen perusteella, mutta ne ovat olennaisesti sama toiminto, eikä niiden välillä ole käytännön eroa. Avainsana OUTER on valinnainen useimmissa tietokantajärjestelmissä, mukaan lukien suositut järjestelmät, kuten MySQL, PostgreSQL ja SQL Server.

Vasen liitos tai vasen ulompi liitos
Vasen Liity
A SQL toiminto, joka yhdistää kaksi taulukkoa ja näyttää kaikki rivit vasemmasta taulukosta ja vastaavat rivit oikeanpuoleisesta taulukosta. Jos oikeanpuoleisessa taulukossa ei ole osumaa, se näkyy TYHJÄ arvot.
Syntaksi
VALITSE * taulukosta 1
LEFT JOIN Table2 ON Table1.columnName = Taulukon 2.sarakkeenNimi;
Vasen ulkoliitos
Toinen SQL-toiminto, joka on käsitteellisesti identtinen LEFT JOIN -toiminnon kanssa. Se myös yhdistää taulukot näyttäen kaikki rivit vasemmasta taulukosta ja vastaavat rivit oikeasta taulukosta. Jos oikeanpuoleisessa taulukossa ei ole osumaa, se näyttää NULL-arvot.
Syntaksi
VALITSE * taulukosta 1
LEFT OUTTER JOIN Table2 ON Table1.columnName = Taulukko2.sarakkeenNimi;
LEFT JOIN ja LEFT OUTER JOIN ovat pohjimmiltaan sama asia SQL:ssä. Molemmat yhdistävät kahden taulukon tiedot näyttäen kaikki rivit vasemmasta taulukosta ja vastaavat rivit oikeanpuoleisesta taulukosta. Jos oikeasta taulukosta ei löydy vastaavuutta, ne näyttävät NULL-arvot. Ainoa ero on terminologiassa: LEFT JOIN käytetään joissakin tietokannoista, kuten MySQL , kun taas LEFT OUTER JOIN käytetään muissa, kuten SQL Serverissä. Syvemmällä tavalla javassa käytetty System.out.print(), samalla pythonissa käytetty print, mutta molemmat heijastavat samaa tulosta. Joten kyse on vain siitä, mitä termiä tietokantajärjestelmäsi suosii, mutta lopputulos on identtinen.
Ennen kuin sukeltaa esimerkkeihin, luodaan tiedot, jotka tarvitaan vasemman ulomman ja vasemman liitoksen suorittamiseen.
Vaihe 1: Luo tietokanta
create database geeksforgeeks; use geeksforgeeks;>
Vaihe 2: Luo taulukko nimeltä athelete
create table atheletes(Id int, Name varchar(20), AtheleteNO int, primary key(Id) );>
Vaihe 3: Lisää arvot athelete-taulukkoon
INSERT INTO atheletes (Id, Name, AtheleteNO) VALUES (1, 'abisheik', 27); INSERT INTO atheletes (Id, Name, AtheleteNO) VALUES (2, 'Niyas', 27); INSERT INTO atheletes (Id, Name, AtheleteNO) VALUES (3, 'Joseph', 29); INSERT INTO atheletes (Id, Name, AtheleteNO) VALUES (4, 'Juan', 24);>
Vaihe 4: Luo taulukko nimeltä Pisteet
CREATE TABLE Points(ID INT, Score INT,AtheleteID INT, PRIMARY KEY (ID) );>
Vaihe 5: Lisää arvot Pisteet-taulukkoon
INSERT INTO Points (ID, Score, AtheleteID) VALUES (1, 270, 1); INSERT INTO Points (ID, Score, AtheleteID) VALUES (2, 297, 2); INSERT INTO Points (ID, Score, AtheleteID) VALUES (3, 210, 3); INSERT INTO Points (ID, Score, AtheleteID) VALUES (4, 180, 4);>
Nyt olemme onnistuneesti luoneet taulukon athelete ja Points for the joins -operaation.
Esimerkki:
Käyttämällä vasenta ulkoliitosta kysely suoritetaan.
Kysely
SELECT * FROM atheletes LEFT OUTER JOIN Points ON atheletes.ID = Points.AtheleteID;>
Lähtö
| Id | Nimi | Urheilija NO | ID | Pisteet | AtheleteID |
|---|---|---|---|---|---|
| 1 | Abisheik | 27 | 1 | 270 | 1 muuntaa merkkijonosta kokonaisluvuksi java |
| 2 | Niyas | 27 | 2 | 297 | 2 |
| 3 | Joseph | 29 | 3 | 210 | 3 |
| 4 | Juan | 24 | 4 | 180 | 4 |
Esimerkki:
Kun käytät vasenta liitosta, kysely suoritetaan.
Kysely
SELECT * FROM atheletes LEFT JOIN Points ON atheletes.ID = Points.AtheleteID;>
Lähtö
| Id | Nimi | Urheilija NO | ID | Pisteet | AtheleteID java-merkkijonon vaihto |
|---|---|---|---|---|---|
| 1 | Abisheik | 27 | 1 | 270 | 1 |
| 2 | Niyas | 27 | 2 | 297 | 2 |
| 3 | Joseph git-tila | 29 | 3 | 210 | 3 |
| 4 | Juan | 24 | 4 | 180 | 4 |
Johtopäätös
SQL:ssä LEFT JOIN ja LEFT OUTER JOIN ovat pohjimmiltaan sama operaatio, jotka eroavat vain terminologialtaan. Molemmat toiminnot yhdistävät tiedot kahdesta taulukosta näyttäen kaikki rivit vasemmasta taulukosta ja vastaavat rivit oikeanpuoleisesta taulukosta ja näyttävät NULL-arvot yhteensopimattomille riveille. Riippumatta tietokantajärjestelmässäsi käytetystä termistä, tulos pysyy samana.
Usein kysytyt kysymykset Left Join vs Left Outer Join
K.1: Onko LEFT JOINin ja LEFT OUTTER JOINin välillä suorituskykyeroa?
Vastaus:
Ei, suorituskyvyssä ei ole eroa. Nämä termit ovat keskenään vaihdettavissa, ja tietokannan optimoija käsittelee niitä samalla tavalla.
K.2: Voinko käyttää LEFT JOIN- tai LEFT OUTTER JOIN -toimintoa useammassa kuin kahdessa taulukossa?
Vastaus:
Kyllä, voit käyttää näitä liitostoimintoja useiden taulukoiden kanssa laajentamalla syntaksia ja määrittämällä liitosehdot kullekin taulukolle.
K.3: Tukevatko kaikki tietokantajärjestelmät sekä LEFT JOIN- että LEFT OUTTER JOIN -yhteyttä?
Vastaus:
Yleisimmin käytetyt tietokantajärjestelmät, mukaan lukien MySQL, PostgreSQL ja SQL Server, tukevat sekä LEFT JOIN- että LEFT OUTER JOIN -toimintoa. On kuitenkin tärkeää tarkistaa tietokantadokumentaation yhteensopivuus.
K.4: Mitä tapahtuu, jos käytän LEFT JOIN tai LEFT OUTTER JOIN määrittämättä liitosehtoa?
Vastaus:
Näiden liitosoperaatioiden käyttäminen ilman liitosehtoa johtaa karteesiseen tuotteeseen, jossa jokainen vasemmanpuoleisen taulukon rivi yhdistetään jokaiseen oikeanpuoleisen taulukon riviin, mikä saattaa johtaa suureen ja tehottomaan tulosjoukkoon.
K.5: Onko olemassa muita SQL-liitoksia?
Vastaus:
Kyllä, SQL tukee erityyppisiä liitoksia, mukaan lukien INNER JOIN, RIGHT JOIN, FULL OUTTER JOIN ja CROSS JOIN, joista jokainen palvelee eri tarkoituksia useiden taulukoiden tietojen yhdistämisessä.