I SQL brukes både LEFT JOIN og LEFT OUTER JOIN til å kombinere data fra to eller flere tabeller basert på en relatert kolonne, men de er i hovedsak den samme operasjonen, og det er ingen praktisk forskjell mellom dem. Nøkkelordet OUTER er valgfritt i de fleste databasesystemer, inkludert populære som MySQL, PostgreSQL og SQL Server.

Left Join eller Left Outer Join
Venstre Bli med
EN SQL operasjon som kombinerer to tabeller, som viser alle rader fra venstre tabell og samsvarende rader fra høyre tabell. Hvis det ikke er noen samsvar i den høyre tabellen, vises den NULL verdier.
Syntaks
VELG * FRA tabell 1
LEFT JOIN Table2 ON Table1.columnName = Table2.columnName;
Venstre ytre skjøt
En annen SQL-operasjon som er konseptuelt identisk med LEFT JOIN. Den kombinerer også tabeller, og viser alle rader fra venstre tabell og samsvarende rader fra høyre tabell. Hvis det ikke er samsvar i den høyre tabellen, viser den NULL-verdier.
Syntaks
VELG * FRA tabell 1
VENSTRE YTRE JOIN Table2 ON Table1.columnName = Table2.columnName;
LEFT JOIN og LEFT OUTER JOIN er i hovedsak det samme i SQL. De kombinerer begge data fra to tabeller, og viser alle rader fra venstre tabell og samsvarende rader fra høyre tabell. Hvis det ikke er samsvar i den høyre tabellen, viser de NULL-verdier. Den eneste forskjellen er terminologi: LEFT JOIN brukes i noen databaser som MySQL , mens LEFT OUTER JOIN brukes i andre som SQL Server. På en dypere måte System.out.print() brukt i java, samtidig utskrift brukt i python, men begge gjenspeiler samme utgang. Så det er bare et spørsmål om hvilket begrep databasesystemet ditt foretrekker, men resultatet er identisk.
Før vi går inn i eksemplene, la oss lage dataene som kreves for å utføre Venstre ytre sammenføyning og venstre sammenføyning.
Trinn 1: Opprett en database
create database geeksforgeeks; use geeksforgeeks;>
Trinn 2: Lag en tabell med navnet athelete
create table atheletes(Id int, Name varchar(20), AtheleteNO int, primary key(Id) );>
Trinn 3: Sett inn verdier i tabellatheleten
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);>
Trinn 4: Lag en tabell som heter Points
CREATE TABLE Points(ID INT, Score INT,AtheleteID INT, PRIMARY KEY (ID) );>
Trinn 5: Sett inn verdier i tabellen Poeng
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);>
Nå har vi opprettet tabellatheleten og poeng for joins-operasjonen.
Eksempel:
Ved å bruke Left Outer Join, vil spørringen bli utført.
Spørsmål
SELECT * FROM atheletes LEFT OUTER JOIN Points ON atheletes.ID = Points.AtheleteID;>
Produksjon
| ID | Navn java tilfeldig tallgenerator | Athelet NO | ID | Score | Athelet-ID |
|---|---|---|---|---|---|
| 1 | Abisheik | 27 | 1 | 270 | 1 |
| 2 | Niyas | 27 | 2 vlc for å laste ned youtube | 297 | 2 |
| 3 | Josef | 29 | 3 | 210 | 3 |
| 4 | Juan | 24 | 4 | 180 | 4 |
Eksempel:
Ved å bruke Left Join, vil spørringen bli utført.
Spørsmål
SELECT * FROM atheletes LEFT JOIN Points ON atheletes.ID = Points.AtheleteID;>
Produksjon
| ID | Navn | Athelet NEI string java erstatning | ID | Score | Athelet-ID |
|---|---|---|---|---|---|
| 1 | Abisheik | 27 | 1 | 270 | 1 |
| 2 | Niyas | 27 | 2 haug og haug sortering | 297 | 2 |
| 3 | Josef | 29 | 3 | 210 | 3 |
| 4 | Juan | 24 | 4 | 180 | 4 |
Konklusjon
I SQL er LEFT JOIN og LEFT OUTER JOIN i hovedsak den samme operasjonen, bare forskjellig i terminologi. Begge operasjonene kombinerer data fra to tabeller, og viser alle rader fra venstre tabell og samsvarende rader fra høyre tabell mens de viser NULL-verdier for rader som ikke samsvarer. Uavhengig av begrepet som brukes i databasesystemet ditt, forblir resultatet identisk.
Vanlige spørsmål om Left Join vs Left Outer Join
Q.1: Er det noen ytelsesforskjell mellom LEFT JOIN og LEFT OUTER JOIN?
Svar:
Nei, det er ingen ytelsesforskjell. Disse begrepene er utskiftbare, og databaseoptimereren håndterer dem på samme måte.
Q.2: Kan jeg bruke LEFT JOIN eller LEFT OUTER JOIN med mer enn to bord?
Svar:
Ja, du kan bruke disse sammenføyningsoperasjonene med flere tabeller ved å utvide syntaksen, spesifisere sammenføyningsbetingelsene for hver tabell.
rekha indisk
Q.3: Støtter alle databasesystemer både LEFT JOIN og LEFT OUTER JOIN?
Svar:
De mest brukte databasesystemene, inkludert MySQL, PostgreSQL og SQL Server, støtter både LEFT JOIN og LEFT OUTER JOIN. Det er imidlertid viktig å sjekke din spesifikke databasedokumentasjon for kompatibilitet.
Q.4: Hva skjer hvis jeg bruker LEFT JOIN eller LEFT OUTER JOIN uten å spesifisere en sammenføyningsbetingelse?
Svar:
Bruk av disse sammenføyningsoperasjonene uten en sammenføyningsbetingelse vil resultere i et kartesisk produkt, der hver rad fra venstre tabell kombineres med hver rad fra høyre tabell, noe som potensielt kan føre til et stort og ineffektivt resultatsett.
Q.5: Finnes det andre typer SQL-koblinger?
Svar:
Ja, SQL støtter ulike typer sammenføyninger, inkludert INNER JOIN, RIGHT JOIN, FULL OUTER JOIN og CROSS JOIN, som hver tjener forskjellige formål med å kombinere data fra flere tabeller.