logo

SQL spoji (notranji, levi, desni in polni spoj)

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:

študentska miza StudentCourse :

tečajna miza

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.

vizualna predstavitev notranjega združevanja sql

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 :

izhod primera notranjega združevanja sql

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.

Left_Join

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 :

izhod primera leve pridružitve sql

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.

sql desni pridruži vizualni prikaz

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:

primer desnega spoja

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.

Full_Join

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)