logo

SQL Left Outer Join vs Left Join

În SQL, atât LEFT JOIN, cât și LEFT OUTER JOIN sunt folosite pentru a combina date din două sau mai multe tabele pe baza unei coloane înrudite, dar sunt în esență aceeași operație și nu există nicio diferență practică între ele. Cuvântul cheie OUTER este opțional în majoritatea sistemelor de baze de date, inclusiv în cele populare precum MySQL, PostgreSQL și SQL Server.

Alăturare stânga

Left Join sau Left Outer Join



Left Join

A SQL operație care combină două tabele, arătând toate rândurile din tabelul din stânga și rândurile care se potrivesc din tabelul din dreapta. Dacă nu există nicio potrivire în tabelul din dreapta, se afișează NUL valorile.

Sintaxă

SELECTAȚI * DIN Tabelul 1

LEFT JOIN Table2 ON Table1.columnName = Table2.columnName;



Left Outer Join

O altă operație SQL care este conceptual identică cu LEFT JOIN. De asemenea, combină tabele, arătând toate rândurile din tabelul din stânga și rândurile care se potrivesc din tabelul din dreapta. Dacă nu există nicio potrivire în tabelul din dreapta, acesta afișează valori NULL.

Sintaxă

SELECTAȚI * DIN Tabelul 1

LEFT OUTER JOIN Table2 ON Table1.columnName = Table2.columnName;



LEFT JOIN și LEFT OUTER JOIN sunt în esență același lucru în SQL. Ambele combină datele din două tabele, arătând toate rândurile din tabelul din stânga și rândurile care se potrivesc din tabelul din dreapta. Dacă nu există nicio potrivire în tabelul din dreapta, acestea afișează valori NULL. Singura diferență este terminologia: LEFT JOIN este folosit în unele baze de date, cum ar fi MySQL , în timp ce LEFT OUTER JOIN este folosit în altele precum SQL Server. Într-un mod mai profund System.out.print() folosit în java, în același timp print folosit în python, dar ambele reflectă aceeași ieșire. Deci, este doar o chestiune de termen care preferă sistemul dvs. de baze de date, dar rezultatul este identic.

Înainte de a ne scufunda în exemple, să creăm datele necesare pentru a efectua îmbinarea exterioară stângă și îmbinarea stângă.

Pasul 1: Creați o bază de date

create database geeksforgeeks; use geeksforgeeks;>

Pasul 2: Creați un tabel numit athelete

create table atheletes(Id int, Name varchar(20),  AtheleteNO int, primary key(Id) );>

Pasul 3: Introduceți valori în athelete de masă

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);>

Pasul 4: Creați un tabel numit Puncte

CREATE TABLE Points(ID INT, Score INT,AtheleteID INT,   PRIMARY KEY (ID) );>

Pasul 5: Introduceți valori în tabelul Puncte

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);>

Acum, am creat cu succes atleta de masă și Puncte pentru operația de alăturare.

Exemplu:

Prin utilizarea Left Outer Join, interogarea va fi executată.

Interogare

SELECT * FROM atheletes   LEFT OUTER JOIN Points ON  atheletes.ID = Points.AtheleteID;>

Ieșire

Id

Nume

Athelete NR

vlc descărca youtube

ID

Scor

AtheleteID

1

Abişeik

27

1

knn

270

1

2

Niyas

27

2

297

2

3

Iosif

29

3

210

3

4

Juan

24

4

180

4

Exemplu:

Folosind Left Join, interogarea va fi executată.

Interogare

SELECT * FROM atheletes   LEFT JOIN Points ON  atheletes.ID = Points.AtheleteID;>

Ieșire

Id

Nume

Athelete NR

ID

Scor

AtheleteID

1

Abişeik

27

pivotul panda

1

270

1

2

Niyas

27

2

297

2

3

Iosif

exemple de cod c#

29

3

210

3

4

Juan

24

4

180

4

Concluzie

În SQL, LEFT JOIN și LEFT OUTER JOIN sunt în esență aceeași operație, diferă doar în terminologie. Ambele operațiuni combină datele din două tabele, afișând toate rândurile din tabelul din stânga și rândurile care se potrivesc din tabelul din dreapta în timp ce afișează valorile NULL pentru rândurile care nu se potrivesc. Indiferent de termenul folosit în sistemul dumneavoastră de baze de date, rezultatul rămâne identic.

Întrebări frecvente despre Left Join vs Left Outer Join

Î.1: Există vreo diferență de performanță între LEFT JOIN și LEFT OUTER JOIN?

Răspuns:

Nu, nu există nicio diferență de performanță. Acești termeni sunt interschimbabili, iar optimizatorul de baze de date îi gestionează în același mod.

Î.2: Pot folosi LEFT JOIN sau LEFT OUTER JOIN cu mai mult de două tabele?

Răspuns:

Da, puteți utiliza aceste operațiuni de îmbinare cu mai multe tabele extinzând sintaxa, specificând condițiile de îmbinare pentru fiecare tabel.

Î.3: Toate sistemele de baze de date acceptă atât LEFT JOIN, cât și LEFT OUTER JOIN?

Răspuns:

Cele mai utilizate sisteme de baze de date, inclusiv MySQL, PostgreSQL și SQL Server, acceptă atât LEFT JOIN, cât și LEFT OUTER JOIN. Cu toate acestea, este esențial să verificați documentația specifică a bazei de date pentru compatibilitate.

Î.4: Ce se întâmplă dacă folosesc LEFT JOIN sau LEFT OUTER JOIN fără a specifica o condiție de alăturare?

Răspuns:

Utilizarea acestor operațiuni de îmbinare fără o condiție de îmbinare va avea ca rezultat un produs cartezian, în care fiecare rând din tabelul din stânga este combinat cu fiecare rând din tabelul din dreapta, ceea ce poate duce la un set de rezultate mare și ineficient.

Î.5: Există și alte tipuri de alăturari SQL?

Răspuns:

Da, SQL acceptă diverse tipuri de îmbinări, inclusiv INNER JOIN, RIGHT JOIN, FULL OUTER JOIN și CROSS JOIN, fiecare având scopuri diferite în combinarea datelor din mai multe tabele.