SQL Pridružitev operacija združuje podatke ali vrstice iz dveh ali več tabel na podlagi skupnega polja med njimi.
V tem članku bomo spoznali Združitve v SQL, ki zajema vrste JOIN, sintakso in primere.
SQL JOIN
Klavzula SQL JOIN se uporablja za poizvedovanje in dostop do podatkov iz več tabel z vzpostavljanjem logičnih odnosov med njimi. Lahko dostopa do podatkov iz več tabel hkrati z uporabo skupnih ključnih vrednosti, ki si jih delijo različne tabele.
SQL JOIN lahko uporabimo z več tabelami. Lahko se ga združi tudi z drugimi členi, najbolj priljubljena uporaba pa bo uporaba JOIN z stavek WHERE za filtriranje pridobivanja podatkov.
Primer SQL JOIN
Upoštevajte spodnji tabeli, kot sledi:
Študent:
StudentCourse :

Obe tabeli sta povezani z enim skupnim ključem (stolpcem), tj. ROLL_NO.
Z dano poizvedbo SQL lahko izvedemo operacijo JOIN:
SELECT s.roll_no, s.name, s.address, s.phone, s.age, sc.course_id FROM Student s JOIN StudentCourse sc ON s.roll_no = sc.roll_no;>
Izhod:
| ROLL_ŠT | IME | NASLOV | TELEFON | STAROST | COURSE_ID |
| 1 | HRUDO | DELHI | XXXXXXXXX | 18 | 1 |
| 2 | VADITE | BIHAR | XXXXXXXXX | 19 | 2 |
| 3 | RIJANKA | SILGURI | XXXXXXXXX | dvajset | 2 |
| 4 | GLOBOKO | RAMNAGAR | XXXXXXXXX | 18 | 3 |
| 5 | SAPTARHI | KOLKATA | XXXXXXXXX | 19 | 1 |
Vrste JOIN v SQL
V SQL je veliko vrst združevanj. Odvisno od primera uporabe lahko uporabite različne vrste klavzule SQL JOIN. Tukaj so pogosto uporabljeni tipi SQL JOIN:
- NOTRANJI SPOJ
- LEVO PRIDRUŽI SE
- PRAV PRIDRUŽI SE
- POPOLNA PRIDRUŽITEV
- NARAVNI SPOJ
SQL INNER JOIN
The NOTRANJI SPOJ ključna beseda izbere vse vrstice iz obeh tabel, če je pogoj izpolnjen. Ta ključna beseda bo ustvarila nabor rezultatov tako, da bo združila vse vrstice iz obeh tabel, kjer je pogoj izpolnjen, tj. vrednost skupnega polja bo enaka.
Sintaksa :
Sintaksa za SQL INNER JOIN je:
SELECT table1.column1,table1.column2,table2.column1,.... FROM table1 INNER JOIN table2 ON table1.matching_column = table2.matching_column;>
tukaj,
- tabela1 : Prva tabela.
- tabela2 : Druga tabela
- ujemanje_stolpca : Stolpec, ki je skupen obema tabelama.
Opomba : namesto INNER JOIN lahko napišemo tudi JOIN. JOIN je enako kot INNER JOIN.

INNER JOIN Primer
Poglejmo primer klavzule INNER JOIN in ugotovimo, da deluje.
Ta poizvedba bo prikazala imena in starost študentov, vpisanih v različne tečaje.
SELECT StudentCourse.COURSE_ID, Student.NAME, Student.AGE FROM Student INNER JOIN StudentCourse ON Student.ROLL_NO = StudentCourse.ROLL_NO;>
Izhod :

SQL LEFT JOIN
LEFT JOIN vrne vse vrstice tabele na levi strani spoja in ujema vrstice za tabelo na desni strani spoja. Za vrstice, za katere na desni strani ni ustrezne vrstice, bo nabor rezultatov vseboval nič . LEFT JOIN je znan tudi kot LEFT OUTER JOIN.
Sintaksa
Sintaksa LEFT JOIN v SQL je :
SELECT table1.column1,table1.column2,table2.column1,.... FROM table1 LEFT JOIN table2 ON table1.matching_column = table2.matching_column;>
tukaj,
- tabela1: Prva miza.
- tabela2 : Druga tabela
- ujemanje_stolpca : Stolpec, ki je skupen obema tabelama.
Opomba : Uporabimo lahko tudi LEFT OUTER JOIN namesto LEFT JOIN, oba sta enaka.
Primer LEFT JOIN
Poglejmo primer klavzule LEFT JOIN in ugotovimo, da deluje
SELECT Student.NAME,StudentCourse.COURSE_ID FROM Student LEFT JOIN StudentCourse ON StudentCourse.ROLL_NO = Student.ROLL_NO;>
Izhod :

SQL RIGHT JOIN
PRAV PRIDRUŽI SE vrne vse vrstice tabele na desni strani spoja in ujemajoče se vrstice za tabelo na levi strani spoja. Zelo je podoben LEFT JOIN. Za vrstice, za katere na levi strani ni ujemajoče se vrstice, nabor rezultatov bo vseboval nič . RIGHT JOIN je znan tudi kot RIGHT OUTER JOIN.
Sintaksa:
Sintaksa RIGHT JOIN v SQL je:
SELECT table1.column1,table1.column2,table2.column1,.... FROM table1 RIGHT JOIN table2 ON table1.matching_column = table2.matching_column;>
tukaj,
binarno v bcd
- tabela1 : Prva tabela.
- tabela2 : Druga tabela
- ujemanje_stolpca : Stolpec, ki je skupen obema tabelama.
Opomba : Lahko tudi uporabimo DESNI ZUNANJI SPOJ namesto RIGHT JOIN sta oba enaka.

RIGHT JOIN Primer :
Poglejmo primer klavzule RIGHT JOIN in ugotovimo, da deluje
SELECT Student.NAME,StudentCourse.COURSE_ID FROM Student RIGHT JOIN StudentCourse ON StudentCourse.ROLL_NO = Student.ROLL_NO;>
Izhod:

SQL FULL JOIN
POPOLNA PRIDRUŽITEV ustvari nabor rezultatov tako, da združi rezultate LEFT JOIN in RIGHT JOIN. Nabor rezultatov bo vseboval vse vrstice iz obeh tabel. Za vrstice, za katere ni ujemanja, bo nabor rezultatov vseboval NIČ vrednote.
Sintaksa
Sintaksa SQL FULL JOIN je:
SELECT table1.column1,table1.column2,table2.column1,.... FROM table1 FULL JOIN table2 ON table1.matching_column = table2.matching_column;>
tukaj,
- tabela1 : Prva tabela.
- tabela2 : Druga tabela
- ujemanje_stolpca : stolpec, ki je skupen obema tabelama.
FULL JOIN Primer
Poglejmo primer klavzule FULL JOIN in ugotovimo, da deluje
SELECT Student.NAME,StudentCourse.COURSE_ID FROM Student FULL JOIN StudentCourse ON StudentCourse.ROLL_NO = Student.ROLL_NO;>
Izhod:
| IME | COURSE_ID |
|---|---|
| HRUDO | 1 |
| VADITE | 2 |
| RIJANKA | 2 |
| GLOBOKO | 3 |
| SAPTARHI | 1 |
| DHANRAJ | NIČ |
| ROHIT | NIČ |
| NIRAJ | NIČ |
| NIČ | 4 |
| NIČ | 5 |
| NIČ govinda | 4 |
SQL Natural join (?)
Naravno združevanje lahko združuje tabele na podlagi skupnih stolpcev v tabelah, ki se združujejo. Naravno združevanje vrne vse vrstice z ujemanjem vrednosti v skupnih stolpcih z istim imenom in vrsto podatkov stolpcev, ta stolpec pa mora biti prisoten v obeh tabelah.
Obe tabeli morata imeti vsaj en skupni stolpec z istim imenom stolpca in isto vrsto podatkov.
Obe tabeli sta združeni z uporabo Križni spoj .
DBMS bo poiskal skupni stolpec z enakim imenom in tipom podatkov. V rezultatu se ohranijo torke, ki imajo popolnoma enake vrednosti v skupnih stolpcih.
Primer naravnega združevanja:
Oglejte si dve spodnji tabeli - zaposleni in oddelek
| Zaposleni | ||
|---|---|---|
| Emp_id | Emp_name | ID_oddelka |
| 1 | Oven | 10 |
| 2 | Jon | 30 |
| 3 | Bob | petdeset |
| Oddelek | |
|---|---|
| ID_oddelka | Ime_oddelka |
| 10 | IT |
| 30 | HR |
| 40 | TIS |
Problem : Poiščite vse zaposlene in njihove ustrezne oddelke.
Poizvedba o rešitvi : (zaposlena) ? (Oddelek)
| Emp_id | Emp_name | ID_oddelka | ID_oddelka | Ime_oddelka |
|---|---|---|---|---|
| 1 | Oven | 10 | 10 | IT |
| 2 | Jon | 30 | 30 | HR |
| Podatki o zaposlenih | Podatki oddelka |
Dodatni viri
Če želite izvedeti več o SQL JOIN, si oglejte naše videoposnetke in preberite članke:
Left JOIN (Video)
Right JOIN (Video)
Polna PRIDRUŽITEV (video)
SQL | JOIN (kartezijsko združevanje, samozdruževanje)