logo

SQL sujungimai (vidinis, kairysis, dešinysis ir visas sujungimas)

SQL prisijungimas operacija sujungia duomenis arba eilutes iš dviejų ar daugiau lentelių pagal bendrą jų lauką.

Šiame straipsnyje mes sužinosime apie Prisijungia prie SQL, apimantis JOIN tipus, sintaksę ir pavyzdžius.

SQL JOIN

SQL JOIN sąlyga naudojama norint pateikti užklausas ir pasiekti duomenis iš kelių lentelių, tarp jų nustatant loginius ryšius. Jis gali vienu metu pasiekti duomenis iš kelių lentelių, naudodamas bendras raktines reikšmes, kurios dalijasi skirtingose ​​lentelėse.



SQL JOIN galime naudoti su keliomis lentelėmis. Jis taip pat gali būti suporuotas su kitais sakiniais, populiariausias naudojimas bus JOIN su WERE sąlyga filtruoti duomenų gavimą.

SQL JOIN pavyzdys

Apsvarstykite dvi toliau pateiktas lenteles taip:

Studentas:

studentų stalas Studentų kursas :

kursų lentelė

Abi šios lentelės yra sujungtos vienu bendru raktu (stulpeliu), ty ROLL_NO.

JOIN operaciją galime atlikti naudodami nurodytą SQL užklausą:

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

Išvestis:

ROLL_NO VARDAS ADRESAS TELEFONAS AMŽIAUS COURSE_ID
1 ŠIURUS DELIS XXXXXXXXX 18 1
2 PRAKTIKA BIHAR XXXXXXXXX 19 2
3 RIJANKA SILGURI XXXXXXXXX dvidešimt 2
4 GILIAI RAMNAGARAS XXXXXXXXX 18 3
5 SAPTARHI KOLKATA XXXXXXXXX 19 1

JOIN tipai SQL

SQL yra daugybė sujungimų tipų. Atsižvelgiant į naudojimo atvejį, galite naudoti skirtingo tipo SQL JOIN sąlygą. Štai dažnai naudojami SQL JOIN tipai:

  • VIDINIS PRISIJUNGIMAS
  • KAIRĖ PRISIJUNGTI
  • TEISINGAS PRISIJUNGTI
  • VISAS PRISIJUNGTI
  • NATŪRALUS PRISIJUNGIMAS

SQL INNER JOIN

The VIDINIS PRISIJUNGIMAS raktinis žodis parenka visas eilutes iš abiejų lentelių, jei tenkinama sąlyga. Šis raktinis žodis sukurs rezultatų rinkinį, sujungdamas visas abiejų lentelių eilutes, kuriose tenkinama sąlyga, ty bendro lauko reikšmė bus tokia pati.

Sintaksė :

SQL INNER JOIN sintaksė yra tokia:

  SELECT   table1.column1,table1.column2,table2.column1,....   FROM   table1    INNER JOIN   table2   ON   table1.matching_column = table2.matching_column;>

Čia

  • lentelė1 : Pirma lentelė.
  • lentelė2 : Antroji lentelė
  • atitikimo_stulpelis : abiejose lentelėse bendras stulpelis.

Pastaba : Vietoj INNER JOIN galime parašyti JOIN. JOIN yra tas pats kaip VIDINIS JOIN.

sql vidinis sujungimas vizualiai

VIDINIS SUJUNGIMO pavyzdys

Pažiūrėkime į INNER JOIN sąlygos pavyzdį ir supraskime, kad ji veikia.

Ši užklausa parodys studentų, įtrauktų į skirtingus kursus, vardus ir amžių.

  SELECT   StudentCourse.COURSE_ID, Student.NAME, Student.AGE   FROM   Student   INNER JOIN   StudentCourse   ON   Student.ROLL_NO = StudentCourse.ROLL_NO;>

Išvestis :

sql vidinio sujungimo pavyzdžio išvestis

SQL LEFT JOIN

LEFT JOIN grąžina visas lentelės eilutes kairėje sujungimo pusėje ir atitinka lentelės eilutes dešinėje sujungimo pusėje. Eilučių, kurių dešinėje pusėje nėra atitinkamos eilutės, rezultatų rinkinys bus įtrauktas nulinis . LEFT JOIN taip pat žinomas kaip LEFT OUTER JOIN.

Sintaksė

LEFT JOIN sintaksė SQL yra :

  SELECT   table1.column1,table1.column2,table2.column1,....   FROM   table1    LEFT JOIN   table2   ON   table1.matching_column = table2.matching_column;>

Čia

  • 1 lentelė: Pirma lentelė.
  • lentelė2 : Antroji lentelė
  • atitikimo_stulpelis : abiejose lentelėse bendras stulpelis.

Pastaba : Taip pat galime naudoti LEFT OUTER JOIN vietoj LEFT JOIN, abu yra vienodi.

Kairė_Prisijungti

LEFT JOIN Pavyzdys

Pažvelkime į LEFT JOIN sąlygos pavyzdį ir supraskime, kad ji veikia

  SELECT   Student.NAME,StudentCourse.COURSE_ID    FROM   Student   LEFT JOIN   StudentCourse    ON   StudentCourse.ROLL_NO = Student.ROLL_NO;>

Išvestis :

sql kairiojo prisijungimo pavyzdžio išvestis

SQL RIGHT JOIN

TEISINGAS PRISIJUNGTI grąžina visas lentelės eilutes dešinėje sujungimo pusėje ir atitinkamas lentelės eilutes kairėje sujungimo pusėje. Jis labai panašus į LEFT JOIN Eilučių, kurių kairėje pusėje nėra atitinkančios eilutės, rezultatų rinkinyje bus nulinis . RIGHT JOIN taip pat žinomas kaip RIGHT OUTTER JOIN.

Sintaksė:

RIGHT JOIN sintaksė SQL yra:

  SELECT   table1.column1,table1.column2,table2.column1,....   FROM   table1    RIGHT JOIN   table2   ON   table1.matching_column = table2.matching_column;>

Čia

  • lentelė1 : Pirma lentelė.
  • lentelė2 : Antroji lentelė
  • atitikimo_stulpelis : abiejose lentelėse bendras stulpelis.

Pastaba : Mes taip pat galime naudoti DEŠINIS IŠORINIS PRIJUNGIMAS vietoj RIGHT JOIN abu yra vienodi.

sql dešinėje prisijungti prie vizualinio vaizdavimo

RIGHT JOIN Pavyzdys :

Pažiūrėkime į RIGHT JOIN sąlygos pavyzdį ir suprasime, kad ji veikia

  SELECT   Student.NAME,StudentCourse.COURSE_ID    FROM   Student   RIGHT JOIN   StudentCourse    ON   StudentCourse.ROLL_NO = Student.ROLL_NO;>

Išvestis:

dešiniojo sujungimo pavyzdžio išvestis

SQL FULL JOIN

VISAS PRISIJUNGTI sukuria rezultatų rinkinį, derindamas LEFT JOIN ir RIGHT JOIN rezultatus. Rezultatų rinkinyje bus visos eilutės iš abiejų lentelių. Eilučių, kurioms nėra atitikimo, rezultatų rinkinyje bus NULL vertybes.

Visas_Prisijungti

Sintaksė

SQL FULL JOIN sintaksė yra tokia:

  SELECT   table1.column1,table1.column2,table2.column1,....   FROM   table1    FULL JOIN   table2   ON   table1.matching_column = table2.matching_column;>

Čia

  • lentelė1 : Pirma lentelė.
  • lentelė2 : Antroji lentelė
  • atitikimo_stulpelis : abiejose lentelėse bendras stulpelis.

PILNAS PRISIJUNGIMO pavyzdys

Pažiūrėkime į FULL JOIN sąlygos pavyzdį ir supraskime, kad ji veikia

  SELECT   Student.NAME,StudentCourse.COURSE_ID    FROM   Student   FULL JOIN   StudentCourse    ON   StudentCourse.ROLL_NO = Student.ROLL_NO;>

Išvestis:

VARDAS

COURSE_ID

ŠIURUS

1

PRAKTIKA

2

RIJANKA

2

GILIAI

3

SAPTARHI

1

modifikuoti failą linux

DHANRAJ

NULL

ROHIT

NULL

NIRAJ

NULL

NULL

4

NULL

5

NULL

4

SQL natūralus prisijungimas (?)

Natūralus sujungimas gali sujungti lenteles pagal bendrus jungiamų lentelių stulpelius. Natūralus sujungimas grąžina visas eilutes, suderindamas reikšmes bendruose stulpeliuose, kurių stulpelių pavadinimas ir duomenų tipas yra vienodi, ir tas stulpelis turi būti abiejose lentelėse.

Abiejose lentelėse turi būti bent vienas bendras stulpelis su tuo pačiu stulpelio pavadinimu ir tuo pačiu duomenų tipu.

Dvi lentelės sujungiamos naudojant Kryžminis prisijungimas .

DBVS ieškos bendro stulpelio tuo pačiu pavadinimu ir duomenų tipu. Rezultate išsaugomi korteliai, turintys lygiai tokias pačias reikšmes bendruose stulpeliuose.

Natūralaus prisijungimo pavyzdys:

Pažvelkite į dvi toliau pateiktas lenteles – darbuotojas ir skyrius

Darbuotojas

Emp_id Emp_name Dept_id
1 Ram 10
2 Jonas 30
3 Bobas penkiasdešimt

skyrius

Dept_id Dept_name
10 IT
30 HR
40 TIS

Problema : raskite visus darbuotojus ir atitinkamus jų skyrius.

Sprendimo užklausa : (Darbuotojas) ? (Departamentas)

Emp_id Emp_name Dept_id Dept_id Dept_name
1 Ram 10 10 IT
2 Jonas 30 30 HR
Darbuotojų duomenys Skyriaus duomenys

Papildomi resursai

Norėdami sužinoti daugiau apie SQL JOIN, pabandykite žiūrėti mūsų vaizdo įrašus ir skaityti straipsnius:

Išėjo JOIN (vaizdo įrašas)
Teisė PRISIJUNGTI (vaizdo įrašas)
Visas PRISIJUNGTI (vaizdo įrašas)
SQL | PRISIJUNGTI (Dekartinis prisijungimas, savarankiškas prisijungimas)