I SQL bruges både LEFT JOIN og LEFT OUTER JOIN til at kombinere data fra to eller flere tabeller baseret på en relateret kolonne, men de er i det væsentlige den samme operation, og der er ingen praktisk forskel mellem dem. Nøgleordet OUTER er valgfrit i de fleste databasesystemer, inklusive populære som MySQL, PostgreSQL og SQL Server.

Left Join eller Left Outer Join
Venstre Deltag
EN SQL operation, der kombinerer to tabeller, der viser alle rækker fra venstre tabel og matchende rækker fra højre tabel. Hvis der ikke er nogen match i den højre tabel, vises den NUL værdier.
Syntaks
VÆLG * FRA Tabel1
LEFT JOIN Table2 ON Table1.columnName = Table2.columnName;
Venstre Ydre Sammenføjning
Endnu en SQL-operation, der konceptuelt er identisk med LEFT JOIN. Den kombinerer også tabeller, der viser alle rækker fra venstre tabel og matchende rækker fra højre tabel. Hvis der ikke er nogen match i den højre tabel, viser den NULL-værdier.
Syntaks
VÆLG * FRA Tabel1
VENSTRE YDRE JOIN Table2 ON Table1.columnName = Table2.columnName;
LEFT JOIN og LEFT OUTER JOIN er stort set det samme i SQL. De kombinerer begge data fra to tabeller, viser alle rækker fra venstre tabel og matchende rækker fra højre tabel. Hvis der ikke er nogen match i den højre tabel, viser de NULL-værdier. Den eneste forskel er terminologi: LEFT JOIN bruges i nogle databaser som f.eks MySQL , mens LEFT OUTER JOIN bruges i andre som SQL Server. På en mere dybere måde System.out.print() brugt i java, samtidig print brugt i python, men begge afspejler det samme output. Så det er bare et spørgsmål om, hvilket udtryk dit databasesystem foretrækker, men resultatet er identisk.
Før vi dykker ned i eksemplerne, lad os oprette de data, der kræves for at udføre venstre ydre sammenføjning og venstre sammenføjning.
Trin 1: Opret en database
create database geeksforgeeks; use geeksforgeeks;>
Trin 2: Opret en tabel med navnet athelet
create table atheletes(Id int, Name varchar(20), AtheleteNO int, primary key(Id) );>
Trin 3: Indsæt værdier i tabellen athelet
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);>
Trin 4: Opret en tabel med navnet Points
CREATE TABLE Points(ID INT, Score INT,AtheleteID INT, PRIMARY KEY (ID) );>
Trin 5: Indsæt værdier i tabellen Points
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);>
Nu har vi med succes skabt tabellen athelet og point for joins-operationen.
Eksempel:
Ved at bruge Left Outer Join, vil forespørgslen blive udført.
Forespørgsel
SELECT * FROM atheletes LEFT OUTER JOIN Points ON atheletes.ID = Points.AtheleteID;>
Produktion
| Id | Navn b+ træ | Atlet NEJ | ID | Score | Atlet ID |
|---|---|---|---|---|---|
| 1 | Abisheik | 27 | 1 | 270 | 1 |
| 2 | Niyas | 27 | 2 vlc for at downloade youtube | 297 | 2 |
| 3 | Joseph | 29 | 3 | 210 | 3 |
| 4 | Juan | 24 | 4 | 180 | 4 |
Eksempel:
Ved at bruge Left Join, vil forespørgslen blive udført.
Forespørgsel
SELECT * FROM atheletes LEFT JOIN Points ON atheletes.ID = Points.AtheleteID;>
Produktion
| Id | Navn | Atlet NEJ string java udskiftning | ID | Score | Atlet ID |
|---|---|---|---|---|---|
| 1 | Abisheik | 27 | 1 | 270 | 1 |
| 2 | Niyas | 27 | 2 grundlæggende java | 297 | 2 |
| 3 | Joseph | 29 | 3 | 210 | 3 |
| 4 | Juan | 24 | 4 | 180 | 4 |
Konklusion
I SQL er LEFT JOIN og LEFT OUTER JOIN i det væsentlige den samme operation, der kun adskiller sig i terminologi. Begge operationer kombinerer data fra to tabeller, viser alle rækker fra den venstre tabel og matchende rækker fra den højre tabel, mens de viser NULL-værdier for ikke-matchende rækker. Uanset hvilket udtryk der bruges i dit databasesystem, forbliver resultatet identisk.
Ofte stillede spørgsmål om Left Join vs Left Outer Join
Q.1: Er der nogen præstationsforskel mellem LEFT JOIN og LEFT OUTER JOIN?
Svar:
Nej, der er ingen præstationsforskel. Disse termer er udskiftelige, og databaseoptimeringsværktøjet håndterer dem på samme måde.
Q.2: Kan jeg bruge LEFT JOIN eller LEFT OUTER JOIN med mere end to borde?
Svar:
Ja, du kan bruge disse joinoperationer med flere tabeller ved at udvide syntaksen og angive joinbetingelserne for hver tabel.
rekha indisk
Q.3: Understøtter alle databasesystemer både LEFT JOIN og LEFT OUTER JOIN?
Svar:
De mest udbredte databasesystemer, inklusive MySQL, PostgreSQL og SQL Server, understøtter både LEFT JOIN og LEFT OUTER JOIN. Det er dog vigtigt at tjekke din specifikke databasedokumentation for kompatibilitet.
Q.4: Hvad sker der, hvis jeg bruger LEFT JOIN eller LEFT OUTER JOIN uden at angive en join-betingelse?
Svar:
Brug af disse join-operationer uden en join-betingelse vil resultere i et kartesisk produkt, hvor hver række fra venstre tabel kombineres med hver række fra højre tabel, hvilket potentielt fører til et stort og ineffektivt resultatsæt.
Q.5: Er der andre typer SQL-joins?
Svar:
Ja, SQL understøtter forskellige typer joinforbindelser, herunder INNER JOIN, RIGHT JOIN, FULL OUTER JOIN og CROSS JOIN, der hver tjener forskellige formål med at kombinere data fra flere tabeller.