logo

SQL Joins (Indre, Venstre, Højre og Fuld Join)

SQL Join operation kombinerer data eller rækker fra to eller flere tabeller baseret på et fælles felt mellem dem.

attribut fejl python

I denne artikel vil vi lære om Deltager i SQL, dækker JOIN-typer, syntaks og eksempler.

SQL JOIN

SQL JOIN-klausul bruges til at forespørge og få adgang til data fra flere tabeller ved at etablere logiske relationer mellem dem. Den kan få adgang til data fra flere tabeller samtidigt ved hjælp af fælles nøgleværdier, der deles på tværs af forskellige tabeller.



Vi kan bruge SQL JOIN med flere tabeller. Det kan også parres med andre klausuler, den mest populære brug vil være at bruge JOIN med WHERE-klausul at filtrere datahentning.

Eksempel på SQL JOIN

Overvej de to tabeller nedenfor som følger:

Studerende:

elevbord Studenterkursus :

kursusbord

Begge disse tabeller er forbundet med én fælles nøgle (kolonne), dvs. ROLL_NO.

Vi kan udføre en JOIN-operation ved hjælp af den givne SQL-forespørgsel:

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

Produktion:

ROLL_NO NAVN ADRESSE TELEFON ALDER COURSE_ID
1 BARSKE DELHI XXXXXXXXX 18 1
2 ØVE SIG BIHAR XXXXXXXXX 19 2
3 RIYANKA SILGURI XXXXXXXXX tyve 2
4 DYB RAMNAGAR XXXXXXXXX 18 3
5 SAPTARHI KOLKATA XXXXXXXXX 19 1

JOIN-typer i SQL

Der er mange typer Joins i SQL. Afhængigt af use casen kan du bruge forskellige typer SQL JOIN-klausul. Her er de hyppigt anvendte SQL JOIN-typer:

  • INDRE JOIN
  • VENSTRE JOIN
  • HØJRE JOIN
  • FULDT TILMELD
  • NATURLIG JOIN

SQL INNER JOIN

Det INDRE JOIN nøgleordet vælger alle rækker fra begge tabeller, så længe betingelsen er opfyldt. Dette søgeord vil skabe resultatsættet ved at kombinere alle rækker fra begge tabeller, hvor betingelsen opfylder, dvs. værdien af ​​det fælles felt vil være den samme.

Syntaks :

Syntaksen for SQL INNER JOIN er:

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

Her,

  • tabel 1 : Første bord.
  • tabel 2 : Andet bord
  • matchende_kolonne : Kolonne fælles for begge tabeller.

Bemærk : Vi kan også skrive JOIN i stedet for INNER JOIN. JOIN er det samme som INNER JOIN.

sql indre join visuel repræsentation

INNER JOIN Eksempel

Lad os se på eksemplet med INNER JOIN-klausulen og forstå, at det virker.

Denne forespørgsel vil vise navne og alder på studerende, der er tilmeldt forskellige kurser.

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

Produktion :

sql inner join eksempel output

SQL LEFT JOIN

LEFT JOIN returnerer alle rækkerne i tabellen på venstre side af joinforbindelsen og matcher rækker for tabellen på højre side af joinforbindelsen. For de rækker, hvor der ikke er en matchende række i højre side, vil resultatsættet indeholde nul . LEFT JOIN er også kendt som LEFT OUTER JOIN.

Syntaks

Syntaksen for LEFT JOIN i SQL er :

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

Her,

  • tabel 1: Første bord.
  • tabel 2 : Andet bord
  • matchende_kolonne : Kolonne fælles for begge tabeller.

Bemærk : Vi kan også bruge LEFT OUTER JOIN i stedet for LEFT JOIN, begge er ens.

Left_Join

LEFT JOIN Eksempel

Lad os se på eksemplet med LEFT JOIN-klausulen og forstå, at det virker

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

Produktion :

sql left join eksempel output

SQL RET JOIN

HØJRE JOIN returnerer alle rækkerne i tabellen på højre side af sammenføjningen og matchende rækker for tabellen i venstre side af sammenføjningen. Det minder meget om LEFT JOIN For de rækker, hvor der ikke er nogen matchende række i venstre side, resultatsættet vil indeholde nul . RIGHT OUTER JOIN er også kendt som RIGHT OUTER JOIN.

Syntaks:

Syntaksen for RIGHT JOIN i SQL er:

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

Her,

  • tabel 1 : Første bord.
  • tabel 2 : Andet bord
  • matchende_kolonne : Kolonne fælles for begge tabeller.

Bemærk : Vi kan også bruge HØJRE YDRE JOIN i stedet for RIGHT JOIN er begge ens.

hvor mange frugter er der

sql right join visuel repræsentation

RIGHT JOIN Eksempel :

Lad os se på eksemplet med RIGHT JOIN-klausulen og forstå, at det virker

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

Produktion:

højre join eksempel output

SQL FULD JOIN

FULDT TILMELD opretter resultatsættet ved at kombinere resultaterne af både LEFT JOIN og RIGHT JOIN. Resultatsættet vil indeholde alle rækkerne fra begge tabeller. For de rækker, hvor der ikke er matching, vil resultatsættet indeholde NUL værdier.

Fuld_Deltag

Syntaks

Syntaksen for SQL FULL JOIN er:

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

Her,

  • tabel 1 : Første bord.
  • tabel 2 : Andet bord
  • matchende_kolonne : Kolonne fælles for begge tabeller.

FULD JOIN Eksempel

Lad os se på eksemplet med FULL JOIN-klausulen og forstå, at det virker

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

Produktion:

NAVN

COURSE_ID

BARSKE

1

erstatte streng i streng java

ØVE SIG

2

RIYANKA

2

DYB

3

SAPTARHI

1

DHANRAJ

NUL

ROHIT

NUL

fuld hugorm sandhedstabel

NIRAJ

NUL

NUL

4

NUL

5

NUL

4

SQL Natural join (?)

Natural join kan sammenføje tabeller baseret på de fælles kolonner i de tabeller, der sammenføjes. En naturlig joinforbindelse returnerer alle rækker ved at matche værdier i fælles kolonner med samme navn og datatype for kolonner, og den kolonne skal være til stede i begge tabeller.

Begge tabeller skal have mindst én fælles kolonne med samme kolonnenavn og samme datatype.

De to borde samles vha Cross join .

DBMS vil lede efter en fælles kolonne med samme navn og datatype. Tuples med nøjagtig samme værdier i fælles kolonner beholdes i resultatet.

Naturlig tilslutning Eksempel:

Se på de to tabeller nedenfor - Medarbejder og afdeling

Medarbejder

Emp_id Emp_name Dept_id
1 Vædder 10
2 Jon 30
3 Bob halvtreds

Afdeling

Dept_id Afd.navn
10 DET
30 HR
40 TIS

Problem : Find alle medarbejdere og deres respektive afdelinger.

Løsningsforespørgsel : (Medarbejder) ? (Afdeling)

Emp_id Emp_name Dept_id Dept_id Afd.navn
1 Vædder 10 10 DET
2 Jon 30 30 HR
Medarbejderdata Afdelingens data

Yderligere ressourcer

For at lære mere om SQL JOIN prøv at se vores videoer og læse artikler:

Venstre JOIN (video)
Højre JOIN (video)
Fuld JOIN (video)
SQL | JOIN (Cartesian Join, Self Join)