Připojit se k SQL operace kombinuje data nebo řádky ze dvou nebo více tabulek na základě společného pole mezi nimi.
V tomto článku se dozvíme o Připojí se v SQL, zahrnující typy, syntaxi a příklady JOIN.
SQL JOIN
Klauzule SQL JOIN se používá k dotazování a přístupu k datům z více tabulek vytvořením logických vztahů mezi nimi. Může přistupovat k datům z více tabulek současně pomocí společných hodnot klíčů sdílených mezi různými tabulkami.
Můžeme použít SQL JOIN s více tabulkami. Lze jej také spárovat s jinými doložkami, nejoblíbenější použití bude použití JOIN with klauzule WHERE k filtrování načítání dat.
Příklad SQL JOIN
Zvažte následující dvě tabulky:
Student:
Studentský kurz :

Obě tyto tabulky jsou spojeny jedním společným klíčem (sloupcem) tj. ROLL_NO.
příklad alfa beta prořezávání
Pomocí zadaného SQL dotazu můžeme provést operaci 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;>
Výstup:
| ROLL_NO | NÁZEV | ADRESA | TELEFON | STÁŘÍ | COURSE_ID |
| 1 | DRSNÝ | DILLÍ | XXXXXXXXXX | 18 | 1 |
| 2 | PRAXE | BIHAR | XXXXXXXXXX | 19 | 2 |
| 3 | RIJANKA | SILGURI | XXXXXXXXXX | dvacet | 2 |
| 4 | HLUBOKÝ | RAMNAGAR | XXXXXXXXXX | 18 | 3 |
| 5 | SAPTARHI | KOLKATA | XXXXXXXXXX | 19 | 1 |
Typy JOIN v SQL
V SQL existuje mnoho typů spojení. V závislosti na případu použití můžete použít jiný typ klauzule SQL JOIN. Zde jsou často používané typy SQL JOIN:
- VNITŘNÍ SPOJENÍ
- PŘIPOJIT SE VLEVO
- SPRÁVNÉ PŘIPOJENÍ SE
- PLNÉ PŘIPOJENÍ
- PŘIROZENÉ PŘIPOJENÍ
SQL VNITŘNÍ PŘIPOJENÍ
The VNITŘNÍ SPOJENÍ klíčové slovo vybere všechny řádky z obou tabulek, pokud je splněna podmínka. Toto klíčové slovo vytvoří sadu výsledků kombinací všech řádků z obou tabulek, kde podmínka vyhovuje, tj. hodnota společného pole bude stejná.
Syntax :
Syntaxe SQL INNER JOIN je:
SELECT table1.column1,table1.column2,table2.column1,.... FROM table1 INNER JOIN table2 ON table1.matching_column = table2.matching_column;>
Tady,
- stůl 1 : První stůl.
- tabulka2 : Druhý stůl
- odpovídající_sloupec : Sloupec společný pro obě tabulky.
Poznámka : Místo INNER JOIN můžeme také napsat JOIN. JOIN je stejné jako INNER JOIN.

Příklad INNER JOIN
Podívejme se na příklad klauzule INNER JOIN a pochopíme, že to funguje.
Tento dotaz zobrazí jména a věk studentů zapsaných do různých kurzů.
SELECT StudentCourse.COURSE_ID, Student.NAME, Student.AGE FROM Student INNER JOIN StudentCourse ON Student.ROLL_NO = StudentCourse.ROLL_NO;>
Výstup :

SQL LEVÉ PŘIPOJENÍ
LEFT JOIN vrátí všechny řádky tabulky na levé straně spojení a odpovídá řádkům pro tabulku na pravé straně spojení. Pro řádky, pro které neexistuje žádný odpovídající řádek na pravé straně, bude sada výsledků obsahovat nula . LEFT JOIN je také známý jako LEFT OUTER JOIN.
Syntax
Syntaxe LEFT JOIN v SQL je :
SELECT table1.column1,table1.column2,table2.column1,.... FROM table1 LEFT JOIN table2 ON table1.matching_column = table2.matching_column;>
Tady,
- stůl 1: První stůl.
- tabulka2 : Druhý stůl
- odpovídající_sloupec : Sloupec společný pro obě tabulky.
Poznámka : Místo LEFT JOIN můžeme také použít LEFT OUTER JOIN, obojí je stejné.
LEFT JOIN Příklad
Podívejme se na příklad klauzule LEFT JOIN a pochopíme, že to funguje
SELECT Student.NAME,StudentCourse.COURSE_ID FROM Student LEFT JOIN StudentCourse ON StudentCourse.ROLL_NO = Student.ROLL_NO;>
Výstup :

SQL SPRÁVNÉ PŘIPOJENÍ SE
SPRÁVNÉ PŘIPOJENÍ SE vrátí všechny řádky tabulky na pravé straně spojení a odpovídající řádky pro tabulku na levé straně spojení. Je velmi podobný LEFT JOIN Pro řádky, pro které není na levé straně žádný odpovídající řádek, výsledná sada bude obsahovat nula . RIGHT JOIN je také známý jako RIGHT OUTER JOIN.
Syntax:
Syntaxe RIGHT JOIN v SQL je:
SELECT table1.column1,table1.column2,table2.column1,.... FROM table1 RIGHT JOIN table2 ON table1.matching_column = table2.matching_column;>
Tady,
- stůl 1 : První stůl.
- tabulka2 : Druhý stůl
- odpovídající_sloupec : Sloupec společný pro obě tabulky.
Poznámka : Můžeme také použít PRAVÝ VNĚJŠÍ SPOJ místo RIGHT JOIN jsou oba stejné.

Příklad RIGHT JOIN :
Podívejme se na příklad klauzule RIGHT JOIN a pochopíme, že to funguje
SELECT Student.NAME,StudentCourse.COURSE_ID FROM Student RIGHT JOIN StudentCourse ON StudentCourse.ROLL_NO = Student.ROLL_NO;>
Výstup:

SQL PLNÉ PŘIPOJENÍ
PLNÉ PŘIPOJENÍ vytváří sadu výsledků kombinací výsledků obou spojení LEFT JOIN a RIGHT JOIN. Výsledná sada bude obsahovat všechny řádky z obou tabulek. Pro řádky, pro které neexistuje žádná shoda, bude sada výsledků obsahovat NULA hodnoty.
Syntax
Syntaxe SQL FULL JOIN je:
SELECT table1.column1,table1.column2,table2.column1,.... FROM table1 FULL JOIN table2 ON table1.matching_column = table2.matching_column;>
Tady,
- stůl 1 : První stůl.
- tabulka2 : Druhý stůl
- odpovídající_sloupec : Sloupec společný pro obě tabulky.
Příklad FULL JOIN
Podívejme se na příklad klauzule FULL JOIN a pochopíme, že to funguje
SELECT Student.NAME,StudentCourse.COURSE_ID FROM Student FULL JOIN StudentCourse ON StudentCourse.ROLL_NO = Student.ROLL_NO;>
Výstup:
| NÁZEV | COURSE_ID |
|---|---|
| DRSNÝ | 1 |
| PRAXE | 2 |
| RIJANKA | 2 |
| HLUBOKÝ | 3 |
| SAPTARHI | 1 |
| DHANRAJ | NULA |
| ROHIT | NULA |
| NIRAJ | NULA |
| NULA | 4 |
| NULA | 5 |
| NULA | 4 |
SQL Natural join (?)
Přirozené spojení může spojovat tabulky na základě společných sloupců ve spojovaných tabulkách. Přirozené spojení vrátí všechny řádky odpovídajícími hodnotami ve společných sloupcích se stejným názvem a datovým typem sloupců a tento sloupec by měl být přítomen v obou tabulkách.
Obě tabulky musí mít alespoň jeden společný sloupec se stejným názvem sloupce a stejným datovým typem.
Oba stoly jsou spojeny pomocí Křížový spoj .
DBMS bude hledat společný sloupec se stejným názvem a datovým typem Ve výsledku jsou zachovány ntice, které mají ve společných sloupcích přesně stejné hodnoty.
Příklad přirozeného spojení:
Podívejte se na dvě tabulky níže – Zaměstnanec a Oddělení
| Zaměstnanec | ||
|---|---|---|
| Emp_id | Emp_name | Dept_id |
| 1 | RAM | 10 |
| 2 | Jon | 30 |
| 3 | Bobe | padesáti |
| oddělení | |
|---|---|
| Dept_id | Název_oddělení |
| 10 | TO |
| 30 | HR |
| 40 | TIS |
Problém : Najděte všechny zaměstnance a jejich příslušná oddělení.
Dotaz na řešení : (Zaměstnanec) ? (Oddělení)
| Emp_id | Emp_name | Dept_id | Dept_id | Název_oddělení |
|---|---|---|---|---|
| 1 | RAM | 10 | 10 | TO |
| 2 | Jon | 30 | 30 | HR |
| Údaje o zaměstnancích | Údaje oddělení |
Dodatečné zdroje
Chcete-li se dozvědět více o SQL JOIN, zkuste se podívat na naše videa a přečíst si články:
Vlevo JOIN (video)
Právo PŘIPOJIT SE (Video)
Full JOIN (video)
SQL | PŘIPOJIT SE (kartézské spojení, vlastní spojení)