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:
Studenterkursus :

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.

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

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:

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