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

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.