I SQL används både LEFT JOIN och LEFT OUTER JOIN för att kombinera data från två eller flera tabeller baserat på en relaterad kolumn, men de är i huvudsak samma operation och det finns ingen praktisk skillnad mellan dem. Nyckelordet OUTER är valfritt i de flesta databassystem, inklusive populära som MySQL, PostgreSQL och SQL Server.

Left Join eller Left Outer Join
Vänster Gå med
A SQL operation som kombinerar två tabeller, som visar alla rader från den vänstra tabellen och matchande rader från den högra tabellen. Om det inte finns någon matchning i den högra tabellen visas den NULL värden.
Syntax
VÄLJ * FRÅN Tabell1
LEFT JOIN Table2 ON Table1.columnName = Table2.columnName;
Vänster yttre fog
En annan SQL-operation som är begreppsmässigt identisk med LEFT JOIN. Den kombinerar också tabeller, som visar alla rader från den vänstra tabellen och matchande rader från den högra tabellen. Om det inte finns någon matchning i den högra tabellen visar den NULL-värden.
Syntax
VÄLJ * FRÅN Tabell1
LEFT OUTER JOIN Table2 ON Table1.columnName = Table2.columnName;
LEFT JOIN och LEFT OUTER JOIN är i huvudsak samma sak i SQL. De kombinerar båda data från två tabeller, visar alla rader från den vänstra tabellen och matchande rader från den högra tabellen. Om det inte finns någon matchning i den högra tabellen visar de NULL-värden. Den enda skillnaden är terminologi: LEFT JOIN används i vissa databaser som t.ex MySQL , medan LEFT OUTER JOIN används i andra som SQL Server. På ett djupare sätt används System.out.print() i java, samtidigt som utskrift används i python men båda återspeglar samma utdata. Så det är bara en fråga om vilken term ditt databassystem föredrar, men resultatet är identiskt.
Innan vi dyker in i exemplen, låt oss skapa de data som krävs för att utföra vänster yttre sammanfogning och vänster sammanfogning.
Steg 1: Skapa en databas
create database geeksforgeeks; use geeksforgeeks;>
Steg 2: Skapa en tabell med namnet athelet
create table atheletes(Id int, Name varchar(20), AtheleteNO int, primary key(Id) );>
Steg 3: Infoga värden 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);>
Steg 4: Skapa en tabell med namnet Points
CREATE TABLE Points(ID INT, Score INT,AtheleteID INT, PRIMARY KEY (ID) );>
Steg 5: Infoga värden i tabellen Poäng
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 framgångsrikt skapat tabellen athelet och poäng för joins-operationen.
Exempel:
Genom att använda Left Outer Join kommer frågan att exekveras.
Fråga
SELECT * FROM atheletes LEFT OUTER JOIN Points ON atheletes.ID = Points.AtheleteID;>
Produktion
Id | namn | Athelet NEJ konvertering av int till sträng i java | ID | Göra | Athelet-ID |
---|---|---|---|---|---|
1 | Abisheik | 27 | 1 | 270 | 1 |
2 | Niyas | 27 | 2 | 297 | 2 |
3 | Josef | 29 | 3 | 210 | 3 |
4 | Juan | 24 | 4 | 180 | 4 |
Exempel:
Genom att använda Left Join exekveras frågan.
Fråga
SELECT * FROM atheletes LEFT JOIN Points ON atheletes.ID = Points.AtheleteID;>
Produktion
Id | namn | Athelet NEJ | ID | Göra | Athelet-ID |
---|---|---|---|---|---|
1 | Abisheik | 27 | 1 | 270 | 1 |
2 | Niyas | 27 | 2 | 297 | 2 |
3 | Josef | 29 | 3 | 210 | 3 |
4 | Juan | 24 | 4 | 180 | 4 |
Slutsats
I SQL är LEFT JOIN och LEFT OUTER JOIN i huvudsak samma operation, endast olika i terminologi. Båda operationerna kombinerar data från två tabeller, visar alla rader från den vänstra tabellen och matchande rader från den högra tabellen samtidigt som de visar NULL-värden för icke-matchande rader. Oavsett vilken term som används i ditt databassystem förblir resultatet identiskt.
ta bort sista tecknet från strängen
Vanliga frågor om Left Join vs Left Outer Join
F.1: Finns det någon prestandaskillnad mellan LEFT JOIN och LEFT OUTER JOIN?
Svar:
Nej, det är ingen prestandaskillnad. Dessa termer är utbytbara och databasoptimeraren hanterar dem på samma sätt.
F.2: Kan jag använda LEFT JOIN eller LEFT OUTER JOIN med fler än två bord?
Svar:
Ja, du kan använda dessa kopplingsoperationer med flera tabeller genom att utöka syntaxen och ange kopplingsvillkoren för varje tabell.
F.3: Stöder alla databassystem både LEFT JOIN och LEFT OUTER JOIN?
Svar:
De mest använda databassystemen, inklusive MySQL, PostgreSQL och SQL Server, stöder både LEFT JOIN och LEFT OUTER JOIN. Det är dock viktigt att kontrollera din specifika databasdokumentation för kompatibilitet.
F.4: Vad händer om jag använder LEFT JOIN eller LEFT OUTER JOIN utan att ange ett anslutningsvillkor?
Svar:
Att använda dessa joinoperationer utan ett sammanfogningsvillkor kommer att resultera i en kartesisk produkt, där varje rad från den vänstra tabellen kombineras med varje rad från den högra tabellen, vilket potentiellt leder till en stor och ineffektiv resultatuppsättning.
F.5: Finns det andra typer av SQL-kopplingar?
Svar:
Ja, SQL stöder olika typer av kopplingar, inklusive INNER JOIN, RIGHT JOIN, FULL OUTER JOIN och CROSS JOIN, som alla tjänar olika syften med att kombinera data från flera tabeller.