logo

SQL Left Outer Join vs Left Join

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.

Liity vasemmalle

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ä.