logo

SQL-joins (binnen, links, rechts en volledige join)

SQL-join bewerking combineert gegevens of rijen uit twee of meer tabellen op basis van een gemeenschappelijk veld daartussen.

In dit artikel zullen we meer te weten komen Sluit zich aan bij SQL, over JOIN-typen, syntaxis en voorbeelden.

SQL-join

De SQL JOIN-clausule wordt gebruikt om gegevens uit meerdere tabellen op te vragen en te openen door logische relaties daartussen tot stand te brengen. Het heeft tegelijkertijd toegang tot gegevens uit meerdere tabellen met behulp van gemeenschappelijke sleutelwaarden die over verschillende tabellen worden gedeeld.



We kunnen SQL JOIN gebruiken met meerdere tabellen. Het kan ook worden gecombineerd met andere clausules; het meest populaire gebruik is het gebruik van JOIN with WHERE-clausule om het ophalen van gegevens te filteren.

SQL JOIN-voorbeeld

Beschouw de twee onderstaande tabellen als volgt:

Student:

studenten tafel Studentencursus :

cursus tafel

Beide tabellen zijn verbonden door één gemeenschappelijke sleutel (kolom), namelijk ROLL_NO.

We kunnen een JOIN-bewerking uitvoeren met behulp van de gegeven SQL-query:

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

Uitgang:

ROLL_NO NAAM ADRES TELEFOON LEEFTIJD CURSUS ID
1 WREED DELHI XXXXXXXXX 18 1
2 OEFENING BIHAR XXXXXXXXX 19 2
3 RIYANKA SILGURI XXXXXXXXX twintig 2
4 DIEP RAMNAGAR XXXXXXXXX 18 3
5 SAPTARHI KOLKATA XXXXXXXXX 19 1

Typen JOIN in SQL

Er zijn veel soorten joins in SQL. Afhankelijk van het gebruiksscenario kunt u verschillende typen SQL JOIN-clausule gebruiken. Dit zijn de veelgebruikte SQL JOIN-typen:

  • BINNENSTE VERBINDING
  • LINKS AANMELDEN
  • RECHTS MOETEN
  • VOLLEDIG DEELNEMEN
  • NATUURLIJKE MOEITE

SQL INNER JOIN

De BINNENSTE VERBINDING trefwoord selecteert alle rijen uit beide tabellen, zolang aan de voorwaarde wordt voldaan. Dit trefwoord creëert de resultatenset door alle rijen uit beide tabellen te combineren waar aan de voorwaarde voldoet, d.w.z. de waarde van het gemeenschappelijke veld zal hetzelfde zijn.

Syntaxis :

De syntaxis voor SQL INNER JOIN is:

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

Hier,

  • tafel 1 : Eerste tafel.
  • tafel 2 : Tweede tafel
  • overeenkomende_kolom : kolom die gemeenschappelijk is voor beide tabellen.

Opmerking : We kunnen ook JOIN schrijven in plaats van INNER JOIN. JOIN is hetzelfde als INNER JOIN.

sql inner join visuele weergave

INNER JOIN Voorbeeld

Laten we eens kijken naar het voorbeeld van de INNER JOIN-clausule en begrijpen dat deze werkt.

Deze zoekopdracht toont de namen en leeftijden van studenten die voor verschillende cursussen zijn ingeschreven.

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

Uitvoer :

sql inner join voorbeelduitvoer

mama kulkarni

SQL LINKS JOIN

LEFT JOIN retourneert alle rijen van de tabel aan de linkerkant van de join en matcht rijen voor de tabel aan de rechterkant van de join. Voor de rijen waarvoor er geen overeenkomende rij aan de rechterkant is, zal de resultatenset het volgende bevatten nul . LEFT JOIN wordt ook wel LEFT OUTER JOIN genoemd.

Syntaxis

De syntaxis van LEFT JOIN in SQL is :

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

Hier,

  • tafel 1: Eerste tafel.
  • tafel 2 : Tweede tafel
  • overeenkomende_kolom : kolom die gemeenschappelijk is voor beide tabellen.

Opmerking : We kunnen ook LEFT OUTER JOIN gebruiken in plaats van LEFT JOIN, beide zijn hetzelfde.

Links_Verbinden

LINKS JOIN Voorbeeld

Laten we eens kijken naar het voorbeeld van de LEFT JOIN-clausule en begrijpen dat deze werkt

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

Uitvoer :

sql left join voorbeelduitvoer

SQL RECHTS JOIN

RECHTS MOETEN retourneert alle rijen van de tabel aan de rechterkant van de join en overeenkomende rijen voor de tabel aan de linkerkant van de join. Het lijkt erg op LEFT JOIN. Voor de rijen waarvoor er geen overeenkomende rij aan de linkerkant is, de resultatenset zal bevatten nul . RIGHT JOIN wordt ook wel RIGHT OUTER JOIN genoemd.

Syntaxis:

De syntaxis van RIGHT JOIN in SQL is:

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

Hier,

  • tafel 1 : Eerste tafel.
  • tafel 2 : Tweede tafel
  • overeenkomende_kolom : kolom die gemeenschappelijk is voor beide tabellen.

Opmerking : Wij kunnen ook gebruiken RECHTER BUITENKOM in plaats van RIGHT JOIN zijn beide hetzelfde.

sql right join visuele representatie

RECHTS JOIN Voorbeeld :

Laten we eens kijken naar het voorbeeld van de RIGHT JOIN-clausule en begrijpen dat deze werkt

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

Uitgang:

rechter join voorbeelduitvoer

SQL VOLLEDIGE JOIN

VOLLEDIG DEELNEMEN creëert de resultatenset door de resultaten van zowel LEFT JOIN als RIGHT JOIN te combineren. De resultatenset bevat alle rijen uit beide tabellen. Voor de rijen waarvoor geen overeenkomst bestaat, zal de resultatenset het volgende bevatten NUL waarden.

Volledig_Deelnemen

Syntaxis

De syntaxis van SQL FULL JOIN is:

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

Hier,

  • tafel 1 : Eerste tafel.
  • tafel 2 : Tweede tafel
  • overeenkomende_kolom : kolom die gemeenschappelijk is voor beide tabellen.

FULL JOIN Voorbeeld

Laten we eens kijken naar het voorbeeld van de FULL JOIN-clausule en begrijpen dat deze werkt

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

Uitgang:

NAAM

CURSUS ID

WREED

1

OEFENING

2

RIYANKA

2

DIEP

3

SAPTARHI

1

DHANRAJ

NUL

ROHIT

NUL

NIRAJ

NUL

NUL

4

NUL

5

NUL

4

SQL Natural join (?)

Met natuurlijke join kunnen tabellen worden samengevoegd op basis van de gemeenschappelijke kolommen in de tabellen die worden samengevoegd. Een natuurlijke join retourneert alle rijen door waarden te matchen in gemeenschappelijke kolommen met dezelfde naam en gegevenstype van kolommen en die kolom moet aanwezig zijn in beide tabellen.

Beide tabellen moeten ten minste één gemeenschappelijke kolom hebben met dezelfde kolomnaam en hetzelfde gegevenstype.

De twee tabellen worden samengevoegd met behulp van Kruis samenvoegen .

DBMS zoekt naar een gemeenschappelijke kolom met dezelfde naam en hetzelfde gegevenstype. Tuples met exact dezelfde waarden in gemeenschappelijke kolommen worden in het resultaat bewaard.

Natuurlijke verbinding Voorbeeld:

Kijk naar de twee onderstaande tabellen: Medewerker en Afdeling

Medewerker

Emp_id Emp_naam Afdeling_id
1 Ram 10
2 Jon 30
3 Bob vijftig

Afdeling

Afdeling_id Afdelingsnaam
10 HET
30 HR
40 TIS

Probleem : Vind alle medewerkers en hun respectievelijke afdelingen.

Oplossingsvraag : (Medewerker) ? (Afdeling)

Emp_id Emp_naam Afdeling_id Afdeling_id Afdelingsnaam
1 Ram 10 10 HET
2 Jon 30 30 HR
Gegevens van medewerkers Afdelingsgegevens

Aanvullende bronnen

Voor meer informatie over SQL JOIN kunt u onze video's bekijken en artikelen lezen:

Links JOIN (Video)
Rechter JOIN (Video)
Volledige deelname (video)
SQL | JOIN (Cartesiaanse join, zelf join)